Я думаю, что вы ищете именованный канал , то есть механизм межпроцессного взаимодействия, который может использоваться как файл, но не записывается на диск:
import subprocess
import os
fifo_name = 'my-bash.rc'
os.mkfifo(fifo_name)
try:
process = subprocess.Popen(['bash', '--rcfile', fifo_name])
with open(fifo_name, 'w') as f:
f.write('echo "This is my-bash.rc"')
process.wait()
finally:
os.remove(fifo_name)
В приведенном выше примере именованный канал создается и передается подпроцессу, чтобы открыть его для чтения.На стороне python тот же канал открыт для записи, некоторое содержимое записано, а канал закрыт.Подпроцесс получает содержимое канала и продолжает, как если бы это содержимое было прочитано из реального файла.