【问题标题】:Python - how to save uu.encode() output to a variablePython - 如何将 uu.encode() 输出保存到变量
【发布时间】:2015-12-30 04:07:46
【问题描述】:

我想使用uu.encode() 方法对文件进行编码,并在脚本中使用编码文本。为此,我必须将该输出写入文件,默认情况下 uu.encode(input_file, output_file) 需要输出文件名,以便它可以将编码文本写入该文件,然后读取文件以存储在变量中。

但我不想这样做并将编码文本直接存储到变量中。有可能吗?

这里是uu.encode的典型用法:

import uu
uu.encode("myfile.exe", "encoded_exe.txt")

我尝试了一些类似这样的愚蠢动作,但没有成功。

>>> data = uu.encode("M8510-8681-2015-09-29-220157.flv", sys.stdout.read())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IOError: File not open for reading
>>>

这对我来说不是必须的,但想利用这个机会学习一两件事。

【问题讨论】:

标签: python encoding


【解决方案1】:

您可以使用StringIO 创建类似文件的对象,如uu documentation 中所述。

import uu

uu.encode("Bar.txt", "Hello.txt")

import StringIO

output = StringIO.StringIO()
uu.encode("Bar.txt", output)
print output.getvalue()

【讨论】:

    【解决方案2】:

    您可以尝试创建一个 python 临时文件。 https://docs.python.org/3.4/library/tempfile.html 用于更复杂的东西。但如果您真的想避免这种情况,您也可以尝试查看以下内容:virtual file processing in python? 了解 StringIO 和 ByteIO 的几个示例。

    【讨论】:

      猜你喜欢
      • 2021-11-12
      • 2011-11-10
      • 1970-01-01
      • 1970-01-01
      • 2011-12-31
      • 1970-01-01
      • 2021-10-10
      • 2019-01-05
      • 2020-03-13
      相关资源
      最近更新 更多