python文件操作

1. 打开文件 open

handle = open(file_name,’r’,encoding = ‘utf-8’)

  • handle是一个文件句柄,是一个可迭代的对象,可以直接使用for循环按行读取文件内容。
  • Handle使用完毕,需要close掉,否则会引起资源泄漏(一个进程能打开的句柄数目是有限的)
  • r:只读 w:覆盖写 a:追加写
1.1 以相对路径打开
#使用内建函数open
#r:只读  w:覆盖写(之前文件内容会被清空,重新写入新内容)  a:追加写
#默认会按照gbk编码方式读取文件,需要修改为utf-8(最好提前确认下要打开的文件编码方式)
#以相对路径打开(打开文件与当前程序在同级目录时使用)
file_1210 = open('测试文档','r',encoding = 'utf-8')
for line in file_1210:
    print(line.strip())  #print本身会带一个换行符,加上strip消除换行
file_1210.close()   #打开文件之后一定要关闭文件,否则会引起资源泄露(一个进程能打开的句柄数目是有限的)

在这里插入图片描述

1.2 以绝对路径打开

以绝对路径打开,需要注意绝对路径中经常会包含转义字符,故需要在路径前加r,代表原始字符串

#以绝对路径打开,需要注意绝对路径中经常会包含转义字符,故需要在路径前加r,代表原始字符串
file_1210 = open(r'G:\0-编学编测\2-第二阶段\python作业01.txt','r',encoding = 'utf-8')
for line in file_1210:
    print(line.strip())
file_1210.close()

在这里插入图片描述

2. 读文件

关键字含义
read读指定长度字节数的数据,返回一个字符串(不是很常用)
readline读取一行数据,返回一个字符串
readlines读取整个文件,返回一个列表,列表中的每一项是一个字符串,代表了一行的内容
  • 直接使用for line in f的方式循环遍历每一行,功能和readline类似,一次只读一行,相比于readlines占用内存少
#文件特性:读取过的就不会再读,如果想要再次读取,需要关掉重新打开
file_1210 = open('测试文档','r',encoding = 'utf-8')
print(file_1210.read(2))  #单独在read里面加数字2,会显示2个字符
print(file_1210.readline())  #从已经读到的地方开始,读取当前的一行
print(file_1210.readlines())  #返回的是一个列表,可以按照下标取具体哪一行
file_1210.close()

在这里插入图片描述

#读取指定行数,需要将读取结果赋值给一个变量
file_1210 = open('测试文档','r',encoding = 'utf-8')
result = file_1210.readlines()
print(result[2].strip())  #读取第三行内容
file_1210.close()

在这里插入图片描述

3. 写文件

Write:向文件中写一段字符串,如果需要写文件,必须按照‘w’或‘a’的方式打开文件,否则会写失败

3.1 追加写a
#写文件,如果要写入的文件不存在,会新建一个
#追加写:a
file_01 = open('test05.txt','a',encoding='utf-8')
for n in range(1,6):
    file_01.write('这是第%d行\n'%n)
file_01.close()

在这里插入图片描述

3.2 覆盖写 w
#覆盖写:w
file_01 = open('test05.txt','w',encoding='utf-8')
for n in range(1,6):
    file_01.write('这是第%d行\n'%n)
file_01.close()

在这里插入图片描述

4. With open文件(工作中常用这种方法)

当文件操作完毕后,会自动关闭文件(不用再写close语句了)

with open('test05.txt','w',encoding='utf-8') as file_01:
    for n in range(1,6):
        file_01.write('这是第%d行\n'%n)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓晓白的软件测试进阶之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值