码迷,mamicode.com
首页 > 其他好文 > 详细

文件处理

时间:2018-06-05 18:40:41      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:ada   删除   byte   utf-8   odi   参考   write   字符   decode   

文件处理
r+w:可读可写
with open(‘a.txt‘,mode=‘rt‘,encoding=‘utf-8‘)as f:
    data=f.read()
print(data) 
with open(‘a.txt‘,mode=‘rb‘)as f:
    data=f.read()
print(data.decode(‘utf-8‘))

w+t:可写可读
with open(‘a.txt‘,‘w+t‘,encoding=‘utf-8‘)
print(f.readable)
print(f.writeable)

a+t:可追写可读


控制文件指针移动
f=open(‘c.txt‘,mode=‘r‘,encoding=‘utf-8‘)
    f.seek(offest,whence)
offest代表文件的指针偏移量,单位是bytes
whence代表参考物有三个取值
0:参照文件的开头(t和b都可以用)
1:参照当前文件指针所在的位置(只能在b模式下使用)
2:参照文件末尾(倒着移动  (只能在b模式下使用)

快速移动到文件末尾
f.seek(0,2)

 

只有在t模式下的read(n),n代表的是字符个数,除此之外其他的但凡涉及到文件指针的移动都是字节为单位

f=open(‘c.txt‘,mode =‘rt‘,encoding =‘utf-8‘)
f.close()

f=open(‘b.txt‘,mode=‘r+b‘)
f.truncate(3)  参照物的开头永远是文件开头
ab、a+b、r+b


文件的修改

with open(‘c.txt‘,‘r+t‘,encoding=‘utf-8‘)as f:

f.seek(21,0)
f.write(‘我接你‘)


修改文件内容的方式之一
思路:先将原文件内容一次性全部读入内存,然后在内存修改完毕后,在覆盖会原文件
with open(’d.txt‘,‘rt‘,encounding=‘utf-8‘)as f:

修改文件的内容方式之二
思路
1以读的方式打开原文件,以写的方式打开一个新文件
2从原文件循环读取每一行内容修改后写写入新文件
3删除原文件,将新文件重新命名为原文件的名字

优点同一时刻只有一行内容,存在于内存中
缺点在修改期间,文件内容始终存在

文件处理

标签:ada   删除   byte   utf-8   odi   参考   write   字符   decode   

原文地址:https://www.cnblogs.com/zhangrenguo/p/9141123.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!