我最近开始以ETL开发人员的身份工作,并且作为练习的一部分,我正在从包含原始数据的文本文件中提取数据。我的原始数据如下图所示。我的原始数据
现在,我想在我的数据文件中添加定界符。基本上每行之后,我要添加一个逗号(,
)。我在Python中的代码如下所示。
with open ('new_locations.txt', 'w') as output:
with open('locations.txt', 'r') as input:
for line in input:
new_line = line+','
output.write(new_line)
其中new_locations.txt
,输出文本文件locations.txt
是原始数据。
但是,它总是使我出错。
UnicodeDecodeError:“ charmap”编解码器无法解码位置3724中的字节0x81:字符映射到
我到底哪里出问题了?
注意:原始数据中的字符并非全部为ASCII字符。有些也是拉丁字符。
当您以“文本”模式在python 3中打开文件时,通过读写将文件中的字节转换为python(unicode)字符串。默认编码取决于平台,但通常为UTF-8。
如果文件使用latin-1编码,则应使用
with open('locations.txt', 'r', encoding='latin_1') as input
如果您希望输出也位于latin-1中,则可能还应该对输出执行此操作。
从长远来看,您可能应该考虑将所有数据转换为数据文件中的unicode格式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句