如何在不使用open()的情况下在python中创建文件对象

时间:2014-11-12 06:31:38

标签: file python-2.7 python-3.x

用例:
我有一个方法doSomething(文件)接受文件对象并执行某些操作,我无法更改此方法。

现在,要将文件传递给doSomething,我需要通过open()方法打开它,但我没有该文件存储在localhost上,我被允许但我有文件内容和文件名存储在python变量中。有没有办法从这两个变量中获取文件对象?

2 个答案:

答案 0 :(得分:1)

StringIO类是一个类文件类,它将内容存储在内存中。您可以使用您的内容创建实例,并将其传递给doSomething(strio)

来自docs:

import StringIO

output = StringIO.StringIO()
output.write('First line.\n')
print >>output, 'Second line.'

答案 1 :(得分:0)

如果您的数据是8位字符串或Unicode,则StringIO是一个不错的选择。但是,如果您的数据是二进制或8位字符串和Unicode的混合,则StringIO将失败。在这种情况下,建议使用BytesIO。

{{1}}