0
output = cStringIO.StringIO()
output.write('string') # this emulates some_file.txt
p = subprocess.Popen(['perl', 'file.pl'], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
line, _ = p.communicate(output.getvalue())
print line
output.close()
這打印Can't open perl script "file.pl": No such file or directory
。 python腳本和perl文件在同一個目錄下!獲取`perl file.pl <some_file.txt` shell命令的輸出
我想line
是的perl file.pl < some_file.txt
輸出如何做到這一點?
是在當前工作目錄中的file.pl? –
@ ChadS.Yes,它在同一個目錄中。我已經更新了這個問題。 –
你的問題似乎與'subprocess'和'cStringIO'沒有任何關係。嘗試指定'file.pl'的絕對路徑。 – martineau