【Python基础】文件操作
文件操作
参考:http://www.cnblogs.com/linhaifeng/articles/5984922.html#_label28
"""文件 读 r 操作"""
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

f=open('陈粒',encoding='utf-8') data=f.read() print(data) f.close() f=open('xxx') data=f.read() print(data) f=open('陈粒','r',encoding='utf-8') data=f.read() # print(data) print(f.readable()) print('第1行',f.readline(),end='') print('第2行',f.readline()) print('第3行',f.readline()) # for i in range(1): # pass print('第4行',f.readline()) print('第5行',f.readline()) print('第6行',f.readline()) print('第7行',f.readline()) data=f.readlines() print(data) f.close()读文件
""" 文件 写 w 操作 """

f=open('陈粒1','w',encoding='utf8') # f.read() f.write('11111111\n') f.write('222222222\n') f.write('333\n4444\n555\n') # f.writable() f.writelines(['555\n','6666\n']) f.writelines(['555\n','6666\n',1]) # 文件内容只能是字符串,只能写字符串 f.close()写文件
"""文件 追加 a 操作"""

f=open('陈粒1','a',encoding='utf-8') f.write('追加方式写到文件最后')追加写操作
"+" 表示可以同时读写某个文件
r+, 读写【可读,可写】
w+,写读【可读,可写】
a+, 写读【可读,可写】
"""文件修改"""

src_f=open('xxx','r',encoding='gbk') data=src_f.readlines() src_f.close() # for i in data: # print(i) print(data) dst_f=open('xxx','w',encoding='gbk') # dst_f.writelines(data) dst_f.write(data[0]) dst_f.close() with open('a.txt','w') as f: f.write('1111\n') src_f=open('xxx','r',encoding='gbk') dst_f=open('xxx','w',encoding='gbk')修改文件
"""以 with 方式打开多个文件"""

with open('xxx','r',encoding='gbk') as src_f,\ open('xxx_new','w',encoding='gbk') as dst_f: data=src_f.read() dst_f.write(data) f=open('a.txt') print(f.encoding) #查看文件编码View Code
"""以 bytes(二进制)方式打开文件"""

f=open('test11.py','rb',encoding='utf-8') #b的方式不能指定编码 f=open('test11.py','rb') #b的方式不能指定编码 data=f.read() #'字符串'---------encode---------》bytes #bytes---------decode---------》'字符串' print(data) print(data.decode('utf-8')) f.close() f=open('test22.py','wb') #b的方式不能指定编码 f.write(bytes('1111\n',encoding='utf-8')) f.write('中国'.encode('utf-8')) f=open('test22.py','ab') #b的方式不能指定编码 f.write('中国'.encode('utf-8')) open('a.ltxt','wt')View Code
补充:"""需求:读取几万行日志文件的最后一行
f.readlines() 直接全部读出来放在内存中 很耗内存空间
"""

# f=open('日志文件','rb') # data=f.readlines() # print(data[-1].decode('utf-8')) f=open('日志文件','rb') # for i in f.readlines(): # print(i) #循环文件的推荐方式,以行为单位读取,取一行用一行 不全部放在内存中 # for i in f: # print(i) for i in f: offs=-10 while True: f.seek(offs,2) data=f.readlines() if len(data) > 1: print('文件的最后一行是%s' %(data[-1].decode('utf-8'))) break offs*=2View Code

更多精彩