Мне нужно создать файл diff, используя стандартную команду UNIX diff с модулем python subprocess. Проблема в том, что я должен сравнивать файл и поток без создания файла tempopary. Я думал об использовании именованных каналов с помощью метода os.mkfifo, но не достиг хорошего результата. Пожалуйста, напишите простой пример о том, как решить эту проблему? Я пробовал вот так:
fifo = 'pipe'
os.mkfifo(fifo)
op = popen('cat ', fifo)
print >> open(fifo, 'w'), output
os.unlink(fifo)
proc = Popen(['diff', '-u', dumpfile], stdin=op, stdout=PIPE)
но похоже, что diff
не видит второй аргумент.