文件操作
Posted lowislucifer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件操作相关的知识,希望对你有一定的参考价值。
一、文件操作
#打开文件: 1.路径(绝对路径、相对路径)。 # 2.编码方式。 # 3.操作方式(只读、只写、读写等)
二、打开方式
1. w 相关
# w w+ w+b 写相关 f=open(‘cimi.txt‘,mode="w",encoding=‘gbk‘) f.write(‘abcdefghigklmn‘) #只写方式就不能读 f.close() f=open(‘cimi.txt‘,"w+",encoding=‘gbk‘) #写读方式,清空原先的内容,然后写入 f.write(‘opq‘) #此时光标会到最后的位置,所以读不出来 content1=f.read() print(content1) #将光标移到首位 f.seek(0) content1=f.read() print(content1) f.close() #返回opq f=open(‘cimi.txt‘,mode="w+b") #凡是有b的就不需要加encoding参数了,而且后面会用到encode方法 f.write(‘rst‘.encode(‘utf-8‘)) #同样光标移到最后,需要调整光标位置才可以读 f.seek(0) content2=f.read() print(content2) f.close() #返回b‘rst‘ #弊端在于会清除原先的内容
2. r 相关
# r r+ r+b 读相关 f=open(‘cimi.txt‘,"r",encoding=‘utf=8‘) #只读方式打开,光标停在首位 content3=f.read() #读取首位之后全部内容 print(content3) #可以调整光标位置,读取部分内容 f.seek(1) content3=f.read() print(content3) f.seek(0) content3=f.readline() #readline可以有参数,限制读取行数,返回的是字符串 print(content3) f.seek(0) content3=f.readlines() #readlines很少有参数,返回的是一个列表,列表中元素是每一行字符组成的字符串 print(content3) f.close() #返回 # rst # st # rst # [‘rst‘]
3. a 相关
# a a+ ab 追加写 f=open(‘cimi.txt‘,"a",encoding="gbk") #not readable,在后面写但是不可读,并且每次运行就在后面加写 f.write(‘\nmicisixili‘) f.write(‘\nkalajahaga‘) f.close() f=open(‘cimi.txt‘,"a+",encoding="gbk") #光标开始位置是最后 f.seek(0) content4=f.read() print(content4) count=f.tell() print(count) f.write(‘\n男儿有胆气,仗剑走天涯‘) print(f.tell()) count=f.tell() f.seek(count-10) #打开方式是gbk,一个中文两个字节,如果打开方式是utf-8,就是一个中文三个字节 content4=f.read() print(content4) f.close() # 打印 # rst # micisixili # kalajahaga # 123 # 147 # 仗剑走天涯 f=open(‘cimi.txt‘,mode="a+b") f.write(‘cccc‘.encode(‘gbk‘)) print(‘----‘) count=f.tell() f.seek(count-50) content5=f.read() print(content5) f.seek(count-50) listc=f.readlines() print(listc) f.close # ---- # b‘micisixili\r\nkalajahaga\r\n\xc4\xd0\xb6\xf9\xd3\xd0\xb5\xa8\xc6\xf8\xa3\xac\xd5\xcc\xbd\xa3\xd7\xdf\xcc\xec\xd1\xc4cccc‘ # [b‘micisixili\r\n‘, b‘kalajahaga\r\n‘, b‘\xc4\xd0\xb6\xf9\xd3\xd0\xb5\xa8\xc6\xf8\xa3\xac\xd5\xcc\xbd\xa3\xd7\xdf\xcc\xec\xd1\xc4cccc‘]
4.示例
f=open(‘cimi.txt‘,"r+",encoding=‘gbk‘) f.write(‘qm‘) #是从光标位置开始,向后覆盖 content6=f.read() print(content6) f.seek(0) for i in f: print(i,end=‘‘) print(‘-----‘) f.seek(0) f.truncate(10) content6=f.read() print(content6) f.close() # 打印 # t # micis # micisixili # kalajahaga # 男儿有胆气,仗剑走天涯cccc # qmt # micis # micisixili # kalajahaga # 男儿有胆气,仗剑走天涯cccc----- # qmt # micis
三、高级方式
with open(‘cimi.txt‘,"r+",encoding=‘gbk‘) as f: #读写方式,必须是已经存在的文件 f.write(‘cv‘) print(f.read()) #不需要关闭,自动关闭 #两个文件一起操作 with open(‘cimi.txt‘,"a+",encoding=‘gbk‘) as f1, open(‘test.txt‘,"r+",encoding=‘gbk‘) as f2: contentc=f2.read() print(contentc) print(‘------‘) f1.seek(0) contentz=f1.read() print(contentz) # # ll # micis # cill # ------ # cvll # micis
以上是关于文件操作的主要内容,如果未能解决你的问题,请参考以下文章