2012-08-06 66 views
6

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

回答

25

这正是StringIO/cStringIO(在Python 3中更名为io.StringIO)的用途。

+0

+1我只是要发布! – 2012-08-06 17:59:27

+0

该解决方案必须与Python 2.7.3兼容 – user1454693 2012-08-06 18:02:12

+4

@ user1454693该StringIO版本是...或者您是否使用与世界其他地方不同的2.7.3版本? – 2012-08-06 18:03:50

2

或者你也可以很容易地特别是因为所有你需要的是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() 

认为对方的回答很可能是比较正确的。

相关问题