鱼C论坛

 找回密码
 立即注册
查看: 1304|回复: 4

[已解决]关于打开文件的方法有一些不明白

[复制链接]
发表于 2020-11-26 19:47:22 | 显示全部楼层 |阅读模式

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

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

x
举两个例子:
之前打开文件就需要encoding =utf-8
f = open(file_name,encoding = 'utf-8') 比如这样
但是有的就会报错
f1 = open(file_name1,'r',encoding = 'utf=8') #'utf-8' codec can't decode byte 0xb4 in position 0: invalid start byte
正确的应该是:f1 = open(file_name1,'r')

甚么时候需要写encoding = utf-8 什么时候不能写 有点搞晕了??
最佳答案
2020-11-26 19:54:08
奔跑的赵云 发表于 2020-11-26 19:52
请问怎么看文本编码??




打开文本时候点击另存为时候就可看到编码格式

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-26 19:50:22 | 显示全部楼层
本帖最后由 Twilight6 于 2020-11-26 19:51 编辑



需要看你 txt 文本编码是什么,open 就设置 encoding 参数是什么编码

编码一致才能正常的解析汉字等字符,否则会导致字节长度不同而无法解码报错

你打开 txt 时候选择另存为,弹出的对话框可以选择保存的编码格式

如果是 ANSI 那么 open 里面可以不用加 encoding = 'GBK' ,因为 open 默认就是 gbk 打开

而选择 utf-8 那么参数就需要加上 encoding = 'utf-8' 大小写都可以

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-26 19:52:07 | 显示全部楼层
Twilight6 发表于 2020-11-26 19:50
需要看你 txt 文本编码是什么,open 就设置 encoding 参数是什么编码

编码一致才能正常的解析汉字等 ...

请问怎么看文本编码??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-26 19:54:08 | 显示全部楼层    本楼为最佳答案   
奔跑的赵云 发表于 2020-11-26 19:52
请问怎么看文本编码??




打开文本时候点击另存为时候就可看到编码格式

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-26 20:08:17 | 显示全部楼层
windows有的文本编辑器会自带显示,如notepad++: Screenshot 2020-11-26 200717.png
python可以使用chardet模块检测:
  1. import chardet
  2. with open('test.txt', 'rb') as f:
  3.     cd = chardet.detect(f.read())['encoding']
  4. with open('test.txt', 'r', encoding=cd) as f:
  5.     print(f.read())
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-3-29 01:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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