Я запутался с конвейерами и модулем подпроцесса.
вот мой код:
import pipes
import subprocess
with open('123.txt', 'w') as f:
f.write('a line 1\n')
f.write('a line 2\n')
t = pipes.Template()
t.append('grep a', '--')
f = t.open('123.txt', 'r')
print(f.readlines())
with open('123.txt', 'r') as f:
p = subprocess.Popen('grep a', stdin=f, stdout=subprocess.PIPE, shell=True, universal_newlines=True)
print(p.readlines())
их выходные данные точно такие же:
['a line 1\n', 'a line 2\n']
['a line 1\n', 'a line 2\n']
Myвопрос:
В чем разница между этими двумя модулями.
Могу ли я писать строки через подпроцесс.PIPE (stdin) и перенаправлять надругой подпроцесс. ТРУБА (stdout).В этой ситуации, что args
я должен использовать в subprocess.Popen