2015-11-11 55 views
-1

我想在這樣的子使用剪切命令:如何在Python子進程中多次使用cut命令?

subprocess.Popen(['cut', '-d', '''(''', '-f2', 'file1.txt', '|', 'cut', '-d', ''')''', '-f1']) 

,並得到這個錯誤:

cut: only one type of list may be specified 

我怎樣才能糾正呢?

+1

使用'popen'與參數列表和'殼= FALSE'意味着沒有外殼。沒有外殼,你不能有外殼管道。 –

+1

......你可以在你自己的*管道中設置多個串聯在一起的「Popen」對象,這是你應該這樣做的方式;閱讀模塊文檔。 –

+0

我想這可以很容易地完成,而不需要子進程 –

回答

3

管道修建自己通過結合多個Popen對象:

p1 = subprocess.Popen(['cut', '-d(', '-f2', 'file1.txt'], stdout=subprocess.PIPE) 
p2 = subprocess.Popen(['cut', '-d)', '-f1'], stdin=p1.stdout, stdout=subprocess.PIPE) 
p1.stdout.close() 
print p2.communicate()[0] 
+0

這更清晰,然後我(刪除)的嘗試。謝謝 – Ward

+0

謝謝!有用 –

相關問題