python中文件读取_python中的文件读写

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

6 #context = f.read()

7 #File "D:\python37\lib\codecs.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'python\xca\xc7\xb8\xf6\xba\xc3\xb6\xab\xce\xf7\xa3\xac\xce\xd2\xc3\xc7\xd2\xbb\xb6\xa8\xd2\xaa\xba\xc3\xba\xc3\xd1\xa7\xcf\xb0\xcb\xfc'

5 #实际里面存的是utf-8,gbk等格式的二进制

2.3:写:w,没有这个文件就会创建文件,有这个文件就直接使用这个文件,并且将这个文件内原有的数据删除

执行代码前文件中的内容

1419429-20180712233312802-1775280707.png

1 f = open('相对路径文件', mode='w',encoding='utf-8')2 f.write('我们现在将测试w的功能')3 f.close()

执行代码后文件中的内容:

1419429-20180712233356701-1319653647.png

2.4:wb

执行代码前文件中的内容

1419429-20180712233758811-1926784564.png

1 f = open('相对路径文件', mode='wb')2 f.write('我们现在将测试wb的功能'.encode('utf-8'))3 f.close()

执行代码后文件中的内容

1419429-20180712233819581-85732256.png

如果我们在这里的写入方式改为其他的写入方式的话会怎么样呢?

我们一起来实践看看:

1 f = open('相对路径文件', mode='wb')2 f.write('我们现在将测试wb的功能'.encode('gb2312'))3 f.close()

1419429-20180712234100214-736991596.png

由此我们可知:我们要写的文件是以什么编码方式创建的,我们写的时候就要以什么编码方式去写

2.5 a

执行代码前

1419429-20180713221456687-685092755.png

1 with open('数据', mode='a', encoding='utf-8') as f:2 f.write('python也是个好工具')

执行代码后

1419429-20180713221606757-2045836484.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值