鱼C论坛

 找回密码
 立即注册
查看: 80|回复: 12

[已解决]为什么含有中文的txt文件用open打开会报错

[复制链接]
最佳答案
0 
发表于 2020-2-27 03:45:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我在E盘已经新建了一个txt文件
f = open(r'E:\test.txt')
print(f)
print(f.read())


Traceback (most recent call last):
  File "E:/python__pycharm/028.py", line 3, in <module>
    print(f.read())
UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 8: illegal multibyte sequence

为什么中文就会报错,英文就可以直接输出
我加了encoding = 'utf-8'中文就可以显示了,但我看小甲鱼的视频默认的就可以打开
而且我在pycharm总也默认了utf-8
最佳答案
2020-2-27 06:50:54
f = open(r'E:\test.txt', encoding='utf-8')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-27 04:24:33 | 显示全部楼层
还有一个问题“这是一个测试文件为什么中文就不开呢”这是我的txt文件,我先用了rea(),再用tell(),为什么返回的指针位置是53
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
141 
发表于 2020-2-27 06:50:54 | 显示全部楼层    本楼为最佳答案   
f = open(r'E:\test.txt', encoding='utf-8')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
30 
发表于 2020-2-27 09:19:52 | 显示全部楼层
这是windows版本的问题
win8及以上(小甲鱼版本):UTF-8编码
win7(或许是你的版本):GBK编码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
30 
发表于 2020-2-27 09:20:28 | 显示全部楼层
还有下次发到Python交流版块
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
234 
发表于 2020-2-27 10:01:46 | 显示全部楼层
  1. f = open(r'E:\test.txt', encoding='utf-8')
  2. print(f)
  3. print(f.read())
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-27 16:10:49 | 显示全部楼层
TCY 发表于 2020-2-27 09:19
这是windows版本的问题
win8及以上(小甲鱼版本):UTF-8编码
win7(或许是你的版本):GBK编码

我是win10..而且我看txt里显示的也是utf-8,pycharm里我也改成默认是utf-8
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-27 16:11:34 | 显示全部楼层
TCY 发表于 2020-2-27 09:20
还有下次发到Python交流版块

好的,还有我那个tell指针的问题可以解释一下嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-27 16:12:10 | 显示全部楼层
XiaoPaiShen 发表于 2020-2-27 06:50
f = open(r'E:\test.txt', encoding='utf-8')

还有那个指针的问题可以帮我解答一下嘛,谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-27 22:26:31 | 显示全部楼层
求助啊指针的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
141 
发表于 2020-2-28 00:31:12 | 显示全部楼层
mashiro666 发表于 2020-2-27 16:12
还有那个指针的问题可以帮我解答一下嘛,谢谢啦

f = open(r'test.txt', encoding='utf-8')
print(f)
print(f.read())

# 文件读取后,位置指针指在最后
print(f.tell())

# 把文件位置指针指到开始
f.seek(0)
print(f.tell())
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-28 01:57:38 | 显示全部楼层
XiaoPaiShen 发表于 2020-2-28 00:31
f = open(r'test.txt', encoding='utf-8')
print(f)
print(f.read())

‘’这是一个测试文件为什么中文就不开呢‘’ 这个是我的文本内容,但是我输出的指针位置是53,一个中文字符3个字节,不应该是51吗为什么多了2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-2-28 02:02:33 | 显示全部楼层
mashiro666 发表于 2020-2-28 01:57
‘’这是一个测试文件为什么中文就不开呢‘’ 这个是我的文本内容,但是我输出的指针位置是53,一个中文 ...

谢谢,我明白了我多大了一行空白的空行hhhh
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1

GMT+8, 2020-6-2 08:32

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表