Python Subprocess.Popen属性错误?

时间:2015-04-06 23:42:06

标签: python awk

我是python的新手。对不起,如果以下问题非常基本。

我在以下情况下遇到属性错误。亲切的建议想要我错过。 我正在使用python 2.4。

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

AttributeError:' int'对象没有属性'沟通'

感谢, 拉杰什

1 个答案:

答案 0 :(得分: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])