2015-04-06 4 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])