c语言sscanf函数的用法是什么
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~