Python 2.7 将编码的文本文件读取为代码而不是文本.(使用 io 模块修复)



我有一个文本文件(*.txt(,在记事本中打开时显示为纯文本。当我尝试将文件读入 python 时:

with open(Working_File,'r') as WorkTXT:
WorkTXT_Lines = WorkTXT.readlines()
WorkTXT.close()

然后我的脚本失败,因为文本正在转换为其他内容。我可以使用控制台手动测试列表中的内容:

In[51]: WorkTXT_Lines[4]
Out[51]: "x00Tx00hx00ex00 x00Ax00cx00qx00.x00 x00Mx00ex00tx00hx00ox00dx00'x00sx00 x00Ix00nx00sx00tx00rx00ux00mx00ex00nx00tx00 x00Px00ax00rx00ax00mx00ex00tx00ex00rx00sx00 x00fx00ox00rx00 x00tx00hx00ex00 x00Rx00ux00nx00 x00wx00ex00rx00ex00 x00:x00 x00rx00n"

如果我打开原始文本文件并将文本复制粘贴到新的文本文件中,然后运行它似乎会拾取实际文本并且脚本正常工作。这无济于事,因为我正在解析从实验室仪器生成的数百个文本文件。

感谢任何帮助,甚至是更改文本文件的操作系统命令。

编辑 - 在被引导到正确的方向后能够解决问题。 io模块能够解码文本文件并"读取为文本(rt(">

import io
with io.open(Working_File,'rt') as WorkTXT:
WorkTXT_Lines = WorkTXT.readlines()
WorkTXT.close()

页面内容已编码 我用谷歌搜索了你的输出,它说它是utf-16 如果您在阅读文件后对其进行解码,则所有内容都将变为纯文本

import io
with io.open(Working_File,'r', encoding='utf-16-le' ) as WorkTXT:
#here you read the whole file -> decode it -> and split it to lines 
#now you are working with a plain text :) 
WorkTXT_Lines = WorkTXT.readlines() 
for line in WorkTXT_Lines:
print(line)

最新更新