如何创建可以返回任意大量重复数据的对象等文件?

时间:2017-03-17 18:17:59

标签: python file inheritance subprocess

为了与subprocess.run的stdin参数一起使用,我试图创建一个像object这样的文件,它将返回相同的字符或字节序列,这是我喜欢的次数。我希望它看起来像这样:

>>>file_like3 = FileLike("Repeating sequence\n", 3)
>>>print(file_like3.read())
Repeating sequence
Repeating sequence
Repeating sequence

>>>file_like5 = FileLike("print('print through subprocess')\n", 5)
>>>p = subprocess.run(["python"], stdin = file_like5, stdout = subprocess.PIPE)
>>>print(p.stdout)
b'print through subprocess\nprint through subprocess\nprint through subprocess\nprint through subprocess\nprint through subprocess'

我想这样做,以便我可以模拟任意长度的文件,而无需实际创建或读取文件。因为我需要这个作为subprocess.run的输入,我认为做类似的事情,但扩展bytearray而不是文件对象也适合我。看起来我需要覆盖subprocess.run从文件或bytearray对象中使用的任何方法,但我不知道如何确定它们是哪些方法。

0 个答案:

没有答案