gpt4 book ai didi

Python bz2 - 文本与交互式控制台(数据流)

转载 作者:行者123 更新时间:2023-12-01 05:43:00 27 4
gpt4 key购买 nike

我之前使用 bz2 来尝试解压缩输入。我想要解码的输入已经是压缩格式,因此我决定将格式输入到交互式 Python 控制台中:

>>> import bz2
>>> bz2.decompress(input)

这工作得很好,没有任何错误。但是,当我尝试从 html 文件中提取文本然后解压缩时,得到了不同的结果:

file = open("example.html", "r")
contents = file.read()
# Insert code to pull out the text, which is of type 'str'
result = bz2.decompress(parsedString)

我检查了我解析的字符串与原始字符串,它看起来是相同的。此外,当我复制并粘贴我希望解压缩的字符串到我的 .py 文件中(基本上用双括号“”括起来)时,它工作得很好。我还尝试使用“rb”打开,希望它将 .html 文件视为二进制文件,尽管这也无法正常工作。

我的问题是:这两个字符串有什么区别?它们都是“str”类型,所以我假设我缺少一个潜在的区别。此外,我将如何从 .html 中检索 bz2 内容,使其不会被视为不正确的数据流?任何帮助表示赞赏。谢谢!

最佳答案

我的猜测是,html 文件具有数据的文本表示形式,而不是文件本身中的实际二进制数据。

例如,看一下以下代码:

>>> t = '\x80'
>>> print t
>>> '\x80'

但假设我创建一个内容为 \x80 的文本文件并执行以下操作:

with open('file') as f:
t = f.read()
print t

我会回来:

'\\x80'

如果是这种情况,您可以使用 eval 来获得所需的结果:

result = bz2.decompress(eval('"'+parsedString'"'))

只需确保您只针对可信数据执行此操作。

关于Python bz2 - 文本与交互式控制台(数据流),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17006515/

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