鱼C论坛

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

python读取多种不同编码的txt问题

[复制链接]
发表于 2018-10-18 10:57:22 | 显示全部楼层 |阅读模式

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

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

x
比如一个文件夹里有3个命名为a\b\c的txt文本,分别是ANSI、UNICODE、UTF-8的编码,使用open方法读取时该怎样写代码才不会报错?如果不使用先把文件打开用统一编码储存这种方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-18 11:06:27 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-18 11:21:35 | 显示全部楼层
claws0n 发表于 2018-10-18 11:06
https://fishc.com.cn/thread-120446-1-1.html

看了,貌似只是忽略错误,和用符号替换读取不了的内容
我想问的问题是假如我3个不同编码的文本里面,都有‘你好’这个词组,怎么才能用open一次过读取出来?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-18 11:27:27 | 显示全部楼层
f=open('x.txt',encoding='utf-8')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-18 11:29:38 | 显示全部楼层
wiselin 发表于 2018-10-18 11:21
看了,貌似只是忽略错误,和用符号替换读取不了的内容
我想问的问题是假如我3个不同编码的文本里面,都 ...

python 我不是很熟。你要读取三个文档,自然是三个 open,然后换一换编码不就好啦?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-18 11:41:21 | 显示全部楼层
塔利班 发表于 2018-10-18 11:27
f=open('x.txt',encoding='utf-8')

经测试,这样只能打开文件夹下用utf-8编码的文件,但其他ANSI、UNICODE编码的文件则读取不了,我想读取几种不同编码的txt文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-18 11:42:48 | 显示全部楼层
claws0n 发表于 2018-10-18 11:29
python 我不是很熟。你要读取三个文档,自然是三个 open,然后换一换编码不就好啦?

用3个OPEN应该是可以,但是我是想写一个遍历的代码,且不知道里面到底有多少种不同的编码,用一个OPEN来解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-18 11:46:33 | 显示全部楼层
ansi,unicode,utf-8都可以,除非你还有别的,一般txt就这3种编码吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-18 11:52:24 | 显示全部楼层
塔利班 发表于 2018-10-18 11:46
ansi,unicode,utf-8都可以,除非你还有别的,一般txt就这3种编码吧

这3种编码是可以,但比如我写一行这样的代码
def search_in_file(file_name):
    f = open(file_name,encoding='UTF-8')
,要求遍历文件夹下所有的txt文件时,非"UTF-8"编码的文件就会出现读取不了的情况
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-18 12:16:14 | 显示全部楼层
wiselin 发表于 2018-10-18 11:52
这3种编码是可以,但比如我写一行这样的代码,要求遍历文件夹下所有的txt文件时,非"UTF-8"编码的文件就 ...

你不是打开txt么,还打开什么东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-18 12:40:36 | 显示全部楼层
塔利班 发表于 2018-10-18 12:16
你不是打开txt么,还打开什么东西

是txt,比如零基础学习python第30课后第4题练习,要求是把文件夹内所有txt文件遍历一次,列出关键字的位置,那就需要遍历一次所有txt的内容。假如我这个文件夹内,有A\B\C 3个txt文件,分别是用ANSI,UTF-8和UNICODE编码的,就无法实现用
f=open(filename,coding='UTF-8')
来全部读取,所以就想求这种情况怎么写代码才能在所有不同编码的文件中查找需要的关键字内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-18 12:53:00 | 显示全部楼层
可以用,encoding='utf-8',你拼写错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-18 12:57:55 | 显示全部楼层
恩,的确是不行,我刚才是用另存的格式,那还是手动修改格式吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-7 01:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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