Я пытаюсь запустить несколько программ python последовательно, и я хочу, чтобы записывать stdout или вывод каждого процесса в файл или файлы с помощью tempfile или (если есть лучший способ сделать это, это будет потрясающе). Вывод, который будет файлом или несколькими файлами, созданными в процессе 1, будет использоваться в качестве входных данных для следующего процесса. Как это сделать?Захват нескольких файлов из подпроцесса stdout в файл temp, который будет использоваться для следующего подпроцесса
Так что мой код что-то вроде этого:
# multiple files
for file in files:
P1 = Popen('python Prog1.py' + ' ' + file, stdout=PIPE , stderr=STDOUT,shell=True)
# Now I want to capture the output to files so can be used for the next process
# It didn't work
l_out_files.append(P1.stdout)
# Prog2 require if the input file is more than one to have them separated by space
P2 = Popen('python Prog2.py' + ' ' + ' '.join(l_out_files), stdout=PIPE , stderr=STDOUT,shell=True)
Большое спасибо, ребята,
Лучшие
, что вы на самом деле пытаетесь передать, оба p1 и p2 в петле? –
@PadraicCunningham Я исправил это, p1 входит в цикл, но бит p2. – BioInformatician
, поэтому Prog2.py берет строку имен файлов? Также почему бы не просто сделать все это из python, каковы ваши программы на самом деле? –