如何在Python中创建包含文本的虚假文件对象?我正在尝试为一个方法编写单元测试,该方法接收文件对象并通过readlines()
检索文本,然后进行一些文本操作。请注意我无法在文件系统上创建实际文件。该解决方案必须与Python 2.7.3兼容。
答案 0 :(得分:32)
这正是{3}}(在Python 3中重命名为StringIO
/cStringIO
)的目的。
答案 1 :(得分:3)
或者您可以自己轻松实现它,尤其是因为您需要的只是readlines()
:
def FileSpoof:
def __init__(self,my_text):
self.my_text = my_text
def readlines(self):
return self.my_text.splitlines()
然后只需称它为:
somefake = FileSpoof("This is a bunch\nOf Text!")
print somefake.readlines()
那说另一个答案可能更正确。
答案 2 :(得分:0)
在python3中,它可以像
一样简单import io
file = io.StringIO("your text goes here") # takes string as arg
file.read()
在python 2.7中,它可能类似于:
import io
file = io.StringIO(u"your text goes here") # takes unicode as argument
file.read()
您可以将file
对象用于测试。