Python - 如何将uu.encode()输出保存到变量中

时间:2015-10-02 00:32:59

标签: python encoding

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

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

以下是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
>>>

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

2 个答案:

答案 0 :(得分:4)

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

import uu

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

import StringIO

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

答案 1 :(得分:0)

你可以尝试创建一个python tempfile。 https://docs.python.org/3.4/library/tempfile.html更复杂的东西。但是如果你真的想避免这种情况,你也可以尝试查看:virtual file processing in python?,了解StringIO和ByteIO的几个例子。