В написанной мной программе на python у меня есть поток, который перебирает большую структуру в памяти и постепенно записывает ее в файлоподобный объект. У меня есть другой поток, который берет файлоподобный объект и записывает его на диск. Есть ли простой способ соединить два, так что любой ввод данных из первого потока будет буферизован для второго?
В частности, я пытаюсь передать данные в subprocess.Popen (). Процесс будет читать из stdin, но вы не можете передать объект, подобный файлу, в Popen, потому что он вызывает stdin.fileno () и взрывается, если у вас нет реального файла.
Вместо этого вам нужно передать аргумент PIPE Попену, который позволяет вам использовать proc.stdin в качестве файлового объекта. Но если у вас уже есть файлоподобный объект, кажется, нет хорошего способа соединить их вместе.