1.python可使用 open() 打开一个文件
f = open('C:\\123.txt')#这里绝对路径反斜杠需要使用双斜杠\
#这样写运行可能会报错,因为未使用'encoding = '指定文件编码方式,win中默认编码方式为gbk,linux中默认为utf-8 ==》f = open('C:\\123.txt',encoding = 'utf-8')
2.文件读写操作
2.1 f.read()#文件读操作(只读模式,目标文件若不存在,则会报错,且编码方式定义需和目标文件相同)
f = open('C:\\123.txt','r',encoding = 'utf-8')
print(f.read())
2.2 f.write('hello world')#文件写操作(只写模式,会清空原文件内容;若目标文件不存在,则会新建一个文件)
f = open('C:\\123.txt','w',encoding = 'utf-8')
f.write('hello')
#注意,写操作会覆盖文本原有内容,若执行写操作,则在打开资源时就需要定义以写的方式打开,读写操作不可同时使用
2.3 a, 追加模式 #在原有内容上追加内容,相比于写模式,不会清空原有内容
f = open('C:\\123.txt','a',encoding = 'utf-8')
f.write('hello')
2.4 ‘+’ 模式 ‘r+’: 读写模式 'w+':写读模式 'a+':写读模式
2.4.1 r+模式 先读后写
f = open('e:\\123.txt',mode='w+',encoding='gbk')
f.write('你好,hellopython')
f.seek(0)# 将光标移动到文件开头 ,避免读取不到
print(f.read())
f.close()
w+模式 ,a+模式同理
2.5 替换 f.close==>with open 很多时候,我们使用open(),但是忘记了close(),
2.6 seek() 和tell()
with open('C:\\123.txt','w+',encoding='utf-8') as f:
f.write('abcdefgh')# 一共 8 个字符,现在想要读取ef两个字符
f.seek(4)# 将光标移动到4的位置,也就是 d 的后面,从e开始读取
index = f.tell()#获取光标位置
print(f.read(2),index)# 读取两个字符,将读到 ef
=====================================================================================
with open('e:\\123.txt',mode='w+',encoding='utf-8') as f:
f.write('123456789')# 在文件中写入: 123456 按照 utf-8的编码方式写入
f.seek(3)# 将光标移动到位置 3
index = f.tell()# 读取光标的位置
print(f.read(2),index)# 读取两个字符