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

网友投稿 323 2022-12-01

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

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

打开文件与读取文件

基本的打开操作

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 来接收打开后的文件。

另外一些读取函数​​​f.readable()​​​: 判断文件是否可读,返回布尔值​​​f.readline()​​​:只读一行​​​print(f.readlin(),end='')​​ #其中,end=’'表示去掉换行

文件的写

只写的方式打开

f = open('test.txt','w',encoding='gbk') #用只写的方式打开文件data = f.read()print(data)f.close()#只写方式读取文件,文件存在,会把文件清空;文件不存在,会新建一个文件

内容的几种写入

f = open('test.txt','a',encoding='gbk')f.write('窝拆\n') #\n表示换行f.writelines('写到最后了']) #writelines()是写一个列表进去,但列表中元素必须字符串类型f.close()

内容的追加

f = open('test.txt','a',encoding='gbk')f.write('写到文件最后了') #以追加的方式写入,会默认追加到最后f.close()

with open方式打开文件

打开文件后每次都要手动关闭感觉很麻烦,那就用with open,就不用手动关闭文件了

with open('test.txt','w',encoding='gbk') as f: f.write('不需要手动关闭文件了')

从源文件中读到一个文件后写到另外一个文件

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)

慎用w和w+(因为会把源文件清空)r+, w+, a+, x+都表示可读,可写rb是以二进制的方式读,读出来的内容的一长串字节形式的字符,wb是以二进制的方式写

文件打开后的编码问题

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

将二进制解码

f = open('test.txt','rb') #rb,rw的形式不能指定编码data = f.read() #读出来的内容将会是一串二进制字节print(data)print(data.decode('gbk')) #用decode()将二进制字节解码后就可以看到正常的内容了

bytes()编码+解码

f = open('test.txt','wb') #rb,rw的形式不能指定编码#f.write() #wb无法写入字符串,只能写入二进制格式data1 = bytes('这是用bytes()转化成二进制',encoding='gbk') #bytes函数必须指定编码f.write(data)f.close()

encode()编码+解码

f = open('test.txt','wb') #rb,rw的形式不能指定编码data = '这是用encode()转化成二进制'.encode('utf-8')f.write(data)f.close()

二进制处理文件的好处计算机中所有的文件都是二进制存储的,所以不管是图片还是视频都可以用二进制的方式在Python中打开,然后进行处理​​​f.closed():​​​ 判断文件是否关闭​​​f.encoding():​​ 查看文件打开时的编码

文件操作的readlines()和truncate()

readlines()

f = open('test.txt','r+',encoding='utf-8',newline='')#多了一个newline=''表示读取文件中真正的换行符号data = f.readlines() #读取完整内容,包括换行符print(data)

truncate()

f = open('test.txt','r+',encoding='utf-8')f.truncate(2)#截取前10个字节的内容,前提是可写的方式打开#而r+,w+,a+,x+都表示可读,并且可写(慎用w+)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:初学者python笔记(类的继承与多态---详解)
下一篇:深入浅析SpringBoot自动配置原理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~