【发布时间】:2021-04-21 03:03:04
【问题描述】:
我在纯文本文件中有如下行:
181006\td3a8d0236\tNicol\xc3\xa1s\tPe\xc3\xb1a\tmisc.person@email.com
我想使用 Python 打开并读取文件,然后以解码后的形式打印出每一行:
181006 d3a8d0236 Nicolás Peña misc.person@email.com
作为一个文字字符串,这很容易......
import codecs
a = b'181006\t000d3a8d0236\tNicol\xc3\xa1s\tPe\xc3\xb1a\tmisc.person@email.com'
b = codecs.decode(a)
print(b)
但是,尽我所能,我似乎找不到与变量中的数据等效的 b'' 字面语法。有多个关于此的 SO 帖子,但我没有运气使用 open()/read()/write() 等。有人可以提供建议吗?
【问题讨论】:
-
您有读取文件的代码吗?
open("somefile.csv", encoding="utf-8")应该可以正确打开文件。 -
以二进制形式读取文件,如果文件中有文字转义码,
s = s.decode('unicode_escape').encode('latin1').decode('utf8')应该可以工作。
标签: python unicode utf-8 codec