我想使用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
>>>

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

最佳答案

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

import uu

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

import StringIO

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

09-12 16:48