我制作了一个猪拉丁翻译器,从用户那里获取输入,进行翻译然后返回。我想添加输入文本文件以提取文本的功能,但遇到了一个问题,即我没有按预期打开文件。这是我的代码:
from sys import argv
script, filename = argv
file = open(filename, "r")
sentence = file.read()
print sentence
file.close()
问题是当我打印出文件内的信息时,它看起来像这样:
■T h i s i s s o m e t e x t i n a f i l e
代替这个:
This is some text in a file
我知道我可以通过切片来解决空格和奇数方形字符的问题,但是我感觉这是在处理症状,我想了解为什么文本格式很奇怪,所以也许可以解决原因。
我相信这是一个Unicode UTF-16编码文件,这是“ Unicode字节顺序标记”(BOM)。它也可以是带有字节顺序标记的另一种编码,但是它肯定是多字节编码。
这也是为什么您看到字符之间的空白的原因。UTF-16有效地将每个字符表示为两个字节,但是对于您正在使用的标准ASCII字符,该字符的另一半为空(第二个字节为0
)。
尝试以下方法:
from sys import argv
import codecs
script, filename = argv
file = codecs.open(filename, encoding='utf-16')
sentence = file.read()
print sentence
file.close()
替换encoding='utf-16'
为实际上是任何编码。您可能只需要尝试一些并进行实验。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句