2015-04-06 67 views
1

剛剛接觸到python。對不起,如果下面的問題是非常基本的。Python Subprocess.Popen屬性錯誤?

我在下面的情況下得到屬性錯誤。親切的建議,希望我錯過了。 正在使用python 2.4。

count = subprocess.Popen(["awk -F'n=' '{x+=$2}END{print x}' output"],stdout=subprocess.PIPE.communicate()[0],shell=True) 

AttributeError的: 'INT' 對象沒有屬性 '通信'

感謝, 拉傑什

+0

請發佈整個程序,越短越好。 http://sscce.org/ – pts

+0

請發佈整個錯誤消息,包括回溯。回溯中的行號應與您發佈的程序中的行相對應。 – pts

回答

0

替換

stdout=subprocess.PIPE.communicate()[0] 

stdout=subprocess.PIPE 

我想這是你想要輸入的內容:

count = int(subprocess.Popen(["awk -F'n=' '{x+=$2}END{print x}' output"], stdout=subprocess.PIPE, shell=True).communicate()[0]) 

請注意,shell=True是不安全的大部分時間,而這也是不必要的慢。有一種簡單的方法可以避免它在你的情況下:

count = int(subprocess.Popen(('awk', '-Fn=', '{x+=$2}END{print x}', 'output'), stdout=subprocess.PIPE).communicate()[0])