bytes ------> encode(编码) ------> 字符串
字符串 ------> decode(解码) ------> bytes #bytes(要转换成bytes的字符串,一定要指定编码模式encoding = 'utf-8')
打开文件:
with open('a.txt','r',encoding='utf-8') as f1,\ # \可以换行避免一行上有太多内容,打开多个文件用逗号隔开。
open('b.txt','w',encoding='utf-8',newline = '') as f2: # 读取文件中真正的换行符号
文件读取
with open("filename") as file_object(文件内容将要存放的变量名):
text1 = file_object.read() # 全部读取
text2 = file_object.readlines() # 逐行读取,text2是一个列表,每一个元素代表一行数据
文件写入
with open("filename",'w') as file_object:
# 文件的各种打开模式
w 以写方式打开,
a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+ 以读写模式打开
w+ 以读写模式打开 (参见 w )
a+ 以读写模式打开 (参见 a )
rb 以二进制读模式打开
wb 以二进制写模式打开 (参见 w )
ab 以二进制追加模式打开 (参见 a )
rb+ 以二进制读写模式打开 (参见 r+ )
wb+ 以二进制读写模式打开 (参见 w+ )
ab+ 以二进制读写模式打开 (参见 a+ )
如果你省略了模式实参,Python将以默认的只读模式打开文件。
# python 只能将字符串写入文件
file_object.write("要写入的数据")
# 写入多行需要添加换行符
file_object.write("I love python\n")
打开文本文件:
出现错误:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence
# 可以使用‘ignore’属性忽略非法字符,errors='ignore'
# 指明打开方式参数encoding='utf-8',encoding='gbk',encoding='gb18031'
存储数据:
json是一个模块,使用前需提前导入
json.dump(),json.load()
json.dump()接受两个参数,要存储的数据以及可用于存储数据的文件对象(文件名以.json结尾)
json.load()将文件中的数据加载到内存中
增删目录(文件夹):
>>> os.path.join('C:\\Users\\12164\\Desktop','test') # 拼接目录
'C:\\Users\\12164\\Desktop\\test'
>>> os.mkdir('C:\\Users\\12164\\Desktop\\test') # 创建目录
>>> os.rmdir('C:\\Users\\12164\\Desktop\\test') # 删除目录
文件方法:
seek(0) 光标的移动
有三种模式 0,1,2:倒着移动光标
tell() 返回光标在哪 只有read读的是字符,其他方式都是字节(seek,tell)
循环文件的推荐方式:
f = open('a.txt','r',encoding = 'utf-8')
for i in f: # 一行一行读取,要一行给一行