我想使用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
创建类似文件的对象,如uu
documentation中所述。
import uu
uu.encode("Bar.txt", "Hello.txt")
import StringIO
output = StringIO.StringIO()
uu.encode("Bar.txt", output)
print output.getvalue()