python对TXT文件的读写操作

读取TXT文件中的数据

问题描述

从一个文本文件中读取数据,并打印出来看看是什么数据和数据类型。其中文件内容是:

python是一种编程语言
我爱编程
I like coding 
3.1456

解决思路

  1. 定位文件位置
  2. 打开文件
  3. 读取数据
  4. 关闭文件

代码实现

#文件位置
filename='./1.txt'
#打开文件
file_obj=open(filename,mode='r',encoding='utf-8')
#读取文件
content3=file_obj.readlines(2)
print("content3:")
print(type(content3))
print(content3)

content1=file_obj.read()
print("content1:")
print(type(content1))
print(content1)
#关闭文件
file_obj.close()

运行之后得到结果

content3:
<class 'list'>
['python是一种编程语言\n']
content1:
<class 'str'>
我爱编程
I like coding 
3.1456

结果分析

从运行结果分析可以看到

  1. 每执行一次read或者readlines方法,文件里的数据就被提取走。
  2. readlines方法读取的数据是以list类型呈现,而read方法读取的是以str类型呈现。

代码升级

读取数据中,必须严格遵循打开操作并关闭的步骤,很容易忘记关闭文件,导致OI异常。可以用with open() as 的格式来提升代码的安全性和健壮性。代码如下:

filename='./1.txt'
with open(filename,mode='r',encoding='utf-8') as file_obj:
    content3 = file_obj.readlines(2)
    print("content3:")
    print(type(content3))
    print(content3)

    content1 = file_obj.read()
    print("content1:")
    print(type(content1))
    print(content1)

向TXT文件中写入新数据

问题表述

在文本文件1.txt的末尾追加文字“庆祝国庆”。

解决思路

  1. 定位文件位置
  2. 打开文件
  3. 读取数据
  4. 关闭文件

代码实现

我们采用with open() as 的格式来完成上述问题,代码如下:

with open(filename,mode='w',encoding='utf-8') as file_obj:
    content = "庆祝国庆"
    file_obj.writelines(content)

然鹅,我们打开文件会发现只有新添加的文字,而之前的文字则被清空了。原因在于r模式下,指针在文件文件的开头,如果直接写入,则会覆盖源文件。有两种解决方法

  1. 通过read() 读取文件后,指针会移到文件的末尾,再写入数据就不会有问题了。
  2. 直接用文件操作的a模式。
    代码如下
filename='./1.txt'
with open(filename,mode='a',encoding='utf-8') as file_obj:
    content = "庆祝国庆"
    file_obj.write('\n')#换行
    file_obj.write(content)

附文件操作模式及其说明(来源 https://blog.csdn.net/xrinosvip/article/details/82019844在这里插入图片描述

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值