20181202_文件操作学习
file = open(file = '文件位置',mode = '打开模式', encoding = '编码模式')
关于读的
#以只读方式打开
mode= 参数 为 ‘r',encoding参数写该文件的编码方式(如GKB)
#以只读二进制方式打开
mode参数为‘rb',encoding不用写
#以读写的方式打开
mode = 'r+', encoding参数写该文件的编码方式 (如GKB)
f = open('随便写写.txt','r+',encoding='gbk')
data = f.read()
print(data)
f.write('\n一二三四,哈哈')
f.close()
这种是常用的方式,类似于追加,先读后写,之前的文本不会被删掉。
关于写的
#以只写方式打开
mode参数为’w',encoding为写入文章要编码的方式(如GKB)
f = open(
'随便写写.txt','w',encoding = 'gbk'
)
f.write('哈哈哈哈哈哈')
f.close()
#以只写入二进制方式打开
mode参数为‘wb’,encoding则不用写,因为写的直接就是二进制嘛
#以写读的方式
mode参数为‘w+',encoding为写入文章要编码的方式(如GKB),先写再读
但是需要注意,所有以写开始的任务,都是直接清空原内容,再写新内容,所以需要谨慎使用’写‘方式,要确定要新健文件才使用 w。
关于改的
#把内容加到文件尾部
mode参数为’a',encoding为写入文章要编码的方式(如GKB)
f = open('随便写写.txt','a',encoding='gbk')
f.write('\n又来一行,哈哈')
f.close()
#把内容加到文件尾部以二进制的方式
mode参数为’ab',encoding则不用写
循环文件
#一句一句循环文件
f = open('随便写写.txt','r',encoding='gbk')
for line in f:
print(line)
f.close()
导出结果:
除了文章内容本身的\n转行符。print完一行会自带转行
修改文件:
使用append方式,从文件的最后写入内容
将光标移到想改的地方,然后再写入内容。但这种方式,会覆盖后面的数据不推荐。
边读边改的几种方式:
1. 把文件全部读到内存中,在内存中一句句改,删,最后再存。但这种方式,会 浪费资源,如word,vim。这样会占内存。
2. 把文件一句句读到读到内存中,在内存改,删,再一句句存到硬盘中,形成一个修改的新文件,但是这样会占 硬盘。
其他重要语法:
#写入
f.write("),仅在只写,读写,写读的状态下可以使用
#读取到内存变量
f.read(),仅在只读,读写,写读状态下可以使用,参数可以是size,要读取的字符数 。
#刷新到硬盘,flush
f.flush()
#判断是否可读,readable
f.readable()
#只读一行
f.readline()
#定位光标位置,seek
f.seek()
#返回光标坐标,tell
f.tell()
#切字,truncate
f.truncate() 指定长度切,或者从某个位置开始切到尾巴
#文件名修改,os命令
os.rename(old_name,new_name),注意文档需要保持关闭的状态