1.文件操作要素
1:文件路径
2:操作方式
3:编码方式
2:文件操作方式
2.1:r
这里我在E盘根目录创建一个 测试文件.txt 作为例子,编码方式为gb2312,如下
1 f = open('E:/测试文件.txt', mode='r', encoding='gb2312') 2 context = f.read() 3 print(context) 4 f.close() #输出结果:python是个好东西,我们一定要好好学习它
上面,如果编码方式我们改成utf-8的话,将会显示如下错误
1 f = open('E:/测试文件.txt', mode='r', encoding='utf-8') 2 context = f.read() 3 print(context) 4 f.close() #输出结果:Traceback (most recent call last): 5 # File "C:/Users/XZB/PycharmProjects/s1/day8/文件操作.py", line 13, in <module> 6 # context = f.read() 7 # File "D:python37libcodecs.py", line 322, in decode 8 # (result, consumed) = self._buffer_decode(data, self.errors, final) 9 # UnicodeDecodeError: 'utf-8' codec can't decode byte 0xca in position 6: invalid continuation byte
因为再打开文件的时候我们必须以当初编辑这个文件的编码格式来打开,以什么编码方式储存文件的,就要以什么方法打开文件
2.2 rb(非文字类的文件一般用rb,上传下载基本都用到)
1 f = open('E:/测试文件.txt', mode='rb') #这里就不用编码了,以什么存就以什么方式打开 2 content = f.read() 3 print(content) 4 f.close() #输出结果:b'pythonxcaxc7xb8xf6xbaxc3xb6xabxcexf7xa3xacxcexd2xc3xc7xd2xbbxb6xa8xd2xaaxbaxc3xbaxc3xd1xa7xcfxb0xcbxfc' 5 #实际里面存的是utf-8,gbk等格式的二进制
2.3:写:w,没有这个文件就会创建文件,有这个文件就直接使用这个文件,并且将这个文件内原有的数据删除
执行代码前文件中的内容
1 f = open('相对路径文件', mode='w',encoding='utf-8') 2 f.write('我们现在将测试w的功能') 3 f.close()
执行代码后文件中的内容:
2.4:wb
执行代码前文件中的内容
1 f = open('相对路径文件', mode='wb') 2 f.write('我们现在将测试wb的功能'.encode('utf-8')) 3 f.close()
执行代码后文件中的内容
如果我们在这里的写入方式改为其他的写入方式的话会怎么样呢?
我们一起来实践看看:
1 f = open('相对路径文件', mode='wb') 2 f.write('我们现在将测试wb的功能'.encode('gb2312')) 3 f.close()
由此我们可知:我们要写的文件是以什么编码方式创建的,我们写的时候就要以什么编码方式去写
2.5 a
执行代码前
1 with open('数据', mode='a', encoding='utf-8') as f: 2 f.write('python也是个好工具')
执行代码后