我想使用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
>>>
这对我来说不是必须要求,但想要利用这个机会学习一两件事。
答案 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的几个例子。