今天总结一下python中,打开(新建)文件,读写内容的操作。
with open(文件名,打开模式,encoding设置)as 变量:
变量.操作
1.常用打开模式
w:写入模式,w+:写读模式。若文件不存在会创建文件,若存在则会覆盖原文件。
r:读取模式,r+:读写模式。文件必须存在,且指针在文件开始处。
a:追加模式,a+:写读模式。文件不存在则创建,存在则打开,指针在文件末尾处。
2.可以改变指针在文件中的位置
fp.seek(0) 调整指针至文件开始处,一般用于读取内容
fp.seek(0,2) 调整指针至文件末尾处,一般用于追加内容
3.先看个示例:
s=['one','two','three',' four',' five',' six','\n']
with open('./test.txt','a+',encoding='utf-8') as fp:
fp.write('hello python\n')
fp.writelines(s)
'./test.txt' :表示当前文件夹下的test.txt文件。
encoding='utf-8' :设置文章的字符集,如果是二进制不需要设置。
fp.write('hello python\n') :把hello python写进文件,并换行,
fp.writelines(s):把s列表写进文件,只写进内容,不会做任何操作。
hello python
onetwothree four five six
如上:'one','two','three'写进文件中变成了onetwothree,可视化程度较低
' four',' five',' six'由于字符串中有空格,所以可视化程度高,方便下次读取。
'\n' :最后加个换行,方便下次追加内容。
with open('./test.txt','r+',encoding='utf-8') as fp:
data=fp.read()
fp.seek(0)
data=data.replace('python','朋友')
fp.write(data)
4.上面几行代码:以读写模式打开文件
fp.read():会把文件中的内容全部读取下来。
data.replace('python','朋友'):把data中的‘python’全部换成‘朋友’。
fp.seek(0):调整指针到文件开始处。
fp.write(data):把修改后的内容重新写入文件,覆盖原文件。
为了防止不能完全覆盖原文件,建议以w模式重新打开文件并写入。
5.关于读取内容的操作:
fp.read() #读取所有内容
fp.read(字节数) #读取指定字节数的内容
res = fp.readline() #一次只读取一行
res = fp.readline(字节数) #最多读取当前一行
res = fp.readlines(): 读取所有行的内容,每一行的内容作为
一个元素,存入列表中
res = fp.readlines(字节数): 至少读取一行,读完指针所在当前行