Форум сайта python.su
Вызываю никсовый patch через subprocess. Прикол в том, что он пишет вывод только в файл, но никак не на стандартный вывод, что бы я не делал. Патчится один файл, но он громадный и хочется операцию всю с ним провести на лету, без сохранения в tmp. Как провести операцию с максимально возможной производительностью? Файл, который патчится, размером около ста метров, да и сам патч немаленький.
Офлайн
Пытаюсь, опять же, сделать через named pipes, вот так:
fifo = os.path.join(self.path, 'pipe')
print fifo
os.mkfifo(fifo)
op = os.popen('cat '+ fifo)
proc = Popen(['patch', current_keyframe, '--input='+fpath, '--output='+fifo], stdin=PIPE, stdout=PIPE)
os.unlink(fifo)
print op.read()
Офлайн
Все, справился сам.
if not key:
fifo = os.path.join(self.path, 'pipe')
os.mkfifo(fifo)
op = os.popen('cat '+ fifo)
proc = call(['patch', current_keyframe, '--input='+fpath, '--output='+fifo])
os.unlink(fifo)
dmp = op.read()
Офлайн