初学者python笔记(文件的操作)

本文详细介绍Python中文件操作的基础知识,包括文件的打开、读取、写入和关闭等操作,以及如何使用with语句简化文件操作流程。同时,文章还介绍了文件编码、二进制文件处理、文件截断和追加等高级技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当Python学到一定程度的时候,就要跟文件打交道了。到以后自己的写程序,对文件的操作是非常频繁的,因此学会对文件的操作也是Python学习的一项基础任务。

打开文件与读取文件
  1. 基本的打开操作
f = open('test.txt','r'encoding='gbk') #用只读形式打开文件,r是只写,a是追加
#windows系统默认是gbk编码,但如果你的文件是utf-8,则一定要设置成utf-8,否则会打不开
data = f.read()  #读取文件内容,并赋值给data变量
print(data)
f.close()  
#打开后要记得关闭文件,否则内容不会瞬时保存,而且文件多了会影响程序的执行

代码片的第一行,一般将文件打开后都用一个变量来接收,便于在Python的IDLE中操作,本篇文章默认都是用变量 f 来接收打开后的文件。

  1. 另外一些读取函数
    f.readable(): 判断文件是否可读,返回布尔值
    f.readline():只读一行
    print(f.readlin(),end='') #其中,end=’'表示去掉换行
文件的写
  1. 只写的方式打开
f = open('test.txt','w',encoding='gbk')  #用只写的方式打开文件
data = f.read()
print(data)
f.close()
#只写方式读取文件,文件存在,会把文件清空;文件不存在,会新建一个文件
  1. 内容的几种写入
f = open('test.txt','a',encoding='gbk')
f.write('窝拆\n')  #\n表示换行
f.writelines('写到最后了'])  #writelines()是写一个列表进去,但列表中元素必须字符串类型
f.close()
  1. 内容的追加
f = open('test.txt','a',encoding='gbk')
f.write('写到文件最后了')  #以追加的方式写入,会默认追加到最后
f.close()
with open方式打开文件
  1. 打开文件后每次都要手动关闭感觉很麻烦,那就用with open,就不用手动关闭文件了
with open('test.txt','w',encoding='gbk') as f:
    f.write('不需要手动关闭文件了')
  1. 源文件中读到一个文件后写到另外一个文件
with open('test.txt','w',encoding='gbk') as fone:
    with open('test2.txt','r',encoding='gbk') as ftwo:  #将test2作为源文件
        data = ftwo.read()
        fone.write(data)
  1. 慎用w和w+(因为会把源文件清空)
    r+, w+, a+, x+都表示可读,可写
    rb是以二进制的方式读,读出来的内容的一长串字节形式的字符,wb是以二进制的方式写
文件打开后的编码问题

以二进制形式打开文件对文件的处理比较方便,但有很多需要注意的编码问题

  1. 将二进制解码
f = open('test.txt','rb')  #rb,rw的形式不能指定编码
data = f.read()  #读出来的内容将会是一串二进制字节
print(data)
print(data.decode('gbk'))  #用decode()将二进制字节解码后就可以看到正常的内容了
  1. bytes()编码+解码
f = open('test.txt','wb')  #rb,rw的形式不能指定编码
#f.write()  #wb无法写入字符串,只能写入二进制格式
data1 = bytes('这是用bytes()转化成二进制',encoding='gbk')  #bytes函数必须指定编码
f.write(data)
f.close()
  1. encode()编码+解码
f = open('test.txt','wb')  #rb,rw的形式不能指定编码
data = '这是用encode()转化成二进制'.encode('utf-8')
f.write(data)
f.close()
  1. 二进制处理文件的好处
    计算机中所有的文件都是二进制存储的,所以不管是图片还是视频都可以用二进制的方式在Python中打开,然后进行处理
    f.closed(): 判断文件是否关闭
    f.encoding(): 查看文件打开时的编码
文件操作的readlines()和truncate()
  1. readlines()
f = open('test.txt','r+',encoding='utf-8',newline='')
#多了一个newline=''表示读取文件中真正的换行符号
data = f.readlines()  #读取完整内容,包括换行符
print(data)
  1. truncate()
f = open('test.txt','r+',encoding='utf-8')
f.truncate(2)
#截取前10个字节的内容,前提是可写的方式打开
#而r+,w+,a+,x+都表示可读,并且可写(慎用w+)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鸿蒙Next

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

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

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

打赏作者

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

抵扣说明:

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

余额充值