【发布时间】:2012-01-03 14:45:59
【问题描述】:
所以我试图保存我的subprocess.call 的输出,但我不断收到以下错误:
AttributeError: 'int' object has no attribute 'communicate'
代码如下:
p2 = subprocess.call(['./test.out', 'new_file.mfj', 'delete1.out'], stdout = PIPE)
output = p2.communicate[0]
【问题讨论】:
-
推荐
Popen的答案在 2012 年被问到这个问题时基本上是正确的,但现代正确答案是使用subprocess.run或subprocess.check_output如果您需要一个简单的 API 和/或与旧 Python 版本的兼容性。 Thesubprocessdocumentation 在第一部分的第一段中说明了这一点; “调用子流程的推荐方法是对它可以处理的所有用例使用run()函数。”
标签: python