参考:https://www.runoob.com/python3/python3-file-methods.html
https://blog.csdn.net/xrinosvip/article/details/82019844?utm_source=distribute.pc_relevant.none-task
打开文件的格式
常用open(filename,mode),返回一个file对象
参考:https://www.runoob.com/python3/python3-file-methods.html
若该位置没有这个文件,会自动新建文件的操作
#filename是需要打开文件的名字和路径字符串
#mode是打开文件方式的字符,默认是‘r’表示只读
a:在打开的文本结尾追加内容,指针在有该文件内容的结尾;若文件不存在,自动创建
b:以二进制模式打开文本
r:只读,文件指针默认在开头
+:打开文件可读写
w:打开文件,只用于写入,指针在开始位置,若有内容则被删除;若文件不存在,自动创建
X:新建文件,若已存在会报错
一种自动关闭文件的方法
这是一种打开文件和自动关闭文件的方法,文件不存在会报错,
with open('/path/to/file', 'r') as f:
print(f.read())
下面一种则比较麻烦
try:
f = open('/path/', 'r')
print(f.read())
finally:
if f:
f.close()
写入字符
写入的字符在文件中的情况和文件的打开模式有关系。
file = open(filename,mode)
file.write('想要写入的字符串') #会返回写入的字符的个数
file.readlines()#可以读取文件中的内容
file.tell()#返回访问文件对象当前的位置,从文件开头算起的字节数
f.seek()函数
如果要改变文件当前的位置, 可以使用 f.seek(offset, from_what) 函数。
from_what 的值, 如果是 0 表示开头, 如果是 1 表示当前位置, 2 表示文件的结尾,例如:
seek(x,0) : 从(默认也是0)起始位置即文件首行首字符开始移动 x 个字符
seek(x,1) : 表示从当前位置往后移动x个字符
seek(-x,2):表示从文件的结尾往前移动x个字符
>>> f=open(r'C:\Users\MAR\Desktop\test.txt','r+')
>>> f.read()
'0123456789' #文件的原始数据
>>> f.seek(5)
5
>>> f.write('*') #写入一个后指针位置向后移动一位
1
>>> f.read()
'6789' #这时数据变为01234*6789,但这里从指针处向后的读取
>>> f.close()
>>> f1=open(r'C:\Users\MAR\Desktop\test.txt','r+')
>>> f1.read()
'01234*6789' #f读取写入后
>>> f1.seek(2)
2
>>> f1.write('**')
2
>>> f1.close()
>>> f2=open(r'C:\Users\MAR\Desktop\test.txt','r+')
>>> f2.read()
'01**4*6789' #f1读取改变后
来源:CSDN
作者:MAR-Sky
链接:https://blog.csdn.net/weixin_43794311/article/details/104224924