今早着重重新学习了一下python的文件读写,有几个新的学习收获需要记录:(主要内容学习自嵩天教授的《Python语言程序设计课程》,以及《[小甲鱼]零基础入门学习Python》)
一、文件的读
假设f为文件,有三种读文件的方式
注意:文件的遍历**
(一)有两种遍历全文件的方法:
1、一次读入,统一处理(把文本变成一个大的字符串,对大字符串进行统一处理)
f=open("1.txt")
t=f.read()
这里对文本进行处理
f.close()
f=open("1.txt")
t=f.read(2)
while t!='':
这里对字符进行处理
t=f.read(2)
f.close()
(二)有两种按行遍历的方法:
f=open('1.txt')
for line in f.readlines():
这里对文本进行处理
f.close()
f=open('1.txt')
for line in f:
这里对文本进行处理
f.close()
二、文件的指针(参考自https://www.runoob.com/python/file-seek.html)
在操作文件时,文件指针的位置也十分重要,大家一定要留意文件指针的变化。它会关系到你是否能读到想要的内容,是否往正确的位置写入数据等等。对于指针的操作使用的是seek方法,如下所示。
f=open('1.txt')
f.seek(offset[, whence])
offset – 开始的偏移量,也就是代表需要移动偏移的字节数
whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
三、文件的写入
1、如果要写入一个,注意是 一个 字符串 ,则使用f.write(‘dfsfafdsf’)
2、除了可以写入一个字符串之外,还可以写入一个元素全部都是字符串的列表,注意,写入时,会将列表中的元素收尾相连写入文件。
ls=[“123”,‘dfadsf’,’+’]
f.writelines(ls)
结果为将字符串123dfadsf+写入了文件f中。
注意:这里还有一个小插曲,我在联系是使用了下面的代码,可是运行多次文件均没有写入数据,最后查找原因才知是因为没有在最后加入f.close()。当没有使用close()时,要写入的内容依然在缓冲区中,没有写入文件,如果中途终止,文件里就会没有内容。(https://blog.csdn.net/Alber_yang/article/details/89495183)
f=open('1.txt','w')
ls=['fdsfsf','12132213']
f.writelines(ls)