2024-04-26 11:14:45 发布
网友
我想读取一个文件,其中还包含德语字符,而不仅仅是字符。我发现我可以这样做
>>> import codecs >>> file = codecs.open('file.txt','r', encoding='UTF-8') >>> lines= file.readlines()
当我试图在Python IDLE中运行我的作业,但当我试图从其他地方运行它时,没有给出正确的结果,这是可行的。有主意吗?
你需要知道文本是用哪个字符编码的。如果您事先不知道,可以尝试使用chardet模块猜测它。首先安装:
$ pip install chardet
然后,例如以二进制模式读取文件:
>>> import chardet >>> chardet.detect(open("file.txt", "rb").read()) {'confidence': 0.9690625, 'encoding': 'utf-8'}
那么:
>>> import codecs >>> import unicodedata >>> lines = codecs.open('file.txt', 'r', encoding='utf-8').readlines()
我相信文件被正确读取,但在输出时使用了错误的编码。这是基于这样一个事实,即您在空闲时得到了正确的结果。
我建议尝试使用print(line.encode('utf-8')),但我恐怕不知道Python 3是否会正确打印bytes对象。
print(line.encode('utf-8'))
bytes
你需要知道文本是用哪个字符编码的。如果您事先不知道,可以尝试使用chardet模块猜测它。首先安装:
然后,例如以二进制模式读取文件:
那么:
我相信文件被正确读取,但在输出时使用了错误的编码。这是基于这样一个事实,即您在空闲时得到了正确的结果。
我建议尝试使用
print(line.encode('utf-8'))
,但我恐怕不知道Python 3是否会正确打印bytes
对象。相关问题 更多 >
编程相关推荐