Python子进程.Popen属性错误?

Python子进程.Popen属性错误?,python,awk,Python,Awk,我是python新手。对不起,如果下面的问题很基本 我在下面的例子中得到属性错误。好心的建议我想错过。 我正在使用Python2.4 count = subprocess.Popen(["awk -F'n=' '{x+=$2}END{print x}' output"],stdout=subprocess.PIPE.communicate()[0],shell=True) AttributeError:“int”对象没有属性“communicate” 谢谢, 拉杰什更换 stdout=subp

我是python新手。对不起,如果下面的问题很基本

我在下面的例子中得到属性错误。好心的建议我想错过。 我正在使用Python2.4

count = subprocess.Popen(["awk -F'n=' '{x+=$2}END{print x}' output"],stdout=subprocess.PIPE.communicate()[0],shell=True)
AttributeError:“int”对象没有属性“communicate”

谢谢, 拉杰什

更换

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

我猜这就是你想要键入的内容:

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])

请尽可能简短地发布整个程序。请发布整个错误消息,包括回溯。回溯中的行号应与您发布的程序中的行相对应。
count = int(subprocess.Popen(('awk', '-Fn=', '{x+=$2}END{print x}', 'output'), stdout=subprocess.PIPE).communicate()[0])