为了与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对象中使用的任何方法,但我不知道如何确定它们是哪些方法。