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),注意文档需要保持关闭的状态

猜你喜欢

转载自www.cnblogs.com/banshanxiaoyumi/p/10054021.html
今日推荐