文件处理
open(path,mode,encoding)
mode:
- 'r'=只读
- 'w'=只写
- 'a'=追加
- 'wb'-'rb'=二进制读写
- 'r+'=追加(好像和a是一样的用处)
- 'w+':读写模式(会清空文件后写新内容,没什么用)
读取文件:
方法1(针对小文件):
f = open(r'xxxxxxx.txt',mode = 'r',encoding = 'utf-8') # 只读模式
data = f.read() #一次性读取全部
print(data)
f.close # 读取完之后关闭文件释放内存
方法2(一次一次读取):
f = open(r'xxxxxxx.txt',mode = 'r',encoding = 'utf-8') # 只读模式
for line in f:# f其实是一个迭代器,可以用FOR循环读取每一行的内容
print(line)
f.close # 读取完之后关闭文件释放内存
写入文件:
f = open(r'xxxxxxx.txt',mode = 'w',encoding = 'utf-8') # 写模式
f.write('hello')
f.close # 读取完之后关闭文件释放内存
注意:读写时请保持编码一致,不然会乱码
假如不知道要处理的文件是什么编码的怎么办?
import chardet
encoding = chardet.detect(open('xxxx.txt',mode='rb').read())
print(encoding)