如何在Python中创建假文本文件

时间:2012-08-06 17:57:51

标签: python python-2.7 readlines

如何在Python中创建包含文本的虚假文件对象?我正在尝试为一个方法编写单元测试,该方法接收文件对象并通过readlines()检索文本,然后进行一些文本操作。请注意我无法在文件系统上创建实际文件。该解决方案必须与Python 2.7.3兼容。

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对象用于测试。