gpt4 book ai didi

Python 从具有奇怪编码的文件中读取字符串

转载 作者:行者123 更新时间:2023-11-28 21:48:50 25 4
gpt4 key购买 nike

我做了一个 pig latin 翻译器,它从用户那里获取输入,翻译它,然后返回它。我想添加输入文本文件以从中获取文本的功能,但我遇到了一个问题,即文件未按预期打开。这是我的代码:

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

我知道我可以通过切片解决空格和奇怪的方 block 字符问题,但我觉得这是治标不治本,我想了解为什么文本格式很奇怪,这样也许我可以解决问题。

最佳答案

我相信这是一个 Unicode UTF-16 编码文件,这是“Unicode Byte Order Mark”(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' 替换为实际的编码。您可能只需要尝试一些并进行试验。

关于Python 从具有奇怪编码的文件中读取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34584109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com