我在运行以下代码时遇到错误.
#!/usr/bin/python
import subprocess
import os
def check_output(*popenargs, **kwargs):
process = subprocess.Popen(stdout=subprocess.PIPE, *popenargs, **kwargs)
output, unused_err = process.communicate()
retcode = process.poll()
if retcode:
cmd = kwargs.get("args")
if cmd is None:
cmd = popenargs[0]
error = subprocess.CalledProcessError(retcode, cmd)
error.output = output
raise error
return output
location = "%s/folder"%(os.environ["Home"])
subprocess.check_output(['./MyFile'])
Run Code Online (Sandbox Code Playgroud)
错误
subprocess.check_output(['./MyFile'])
AttributeError: 'module' object has no attribute 'check_output'
Run Code Online (Sandbox Code Playgroud)
我正在努力Python 2.6.4
.
您可能只是想使用check_output
,但是,您知道,有一个方法subprocess.check_output
,但直到Python 2.7(http://docs.python.org/3/library/subprocess.html#subprocess.check_output)才定义它.
您甚至可能想要这个,它定义了模块中的功能(如果它不存在)(即在v2.7之前运行).
try: subprocess.check_output
except: subprocess.check_output = check_output
subprocess.check_output()
Run Code Online (Sandbox Code Playgroud)
只需使用:
check_output(['./MyFile'])
Run Code Online (Sandbox Code Playgroud)
您已经定义了自己的函数,它不是subprocess
模块的属性(对于Python 2.6及更早版本).
您还可以将该函数分配给导入的模块对象(但这不是必需的):
subprocess.check_output = check_output
location = "%s/folder" % (os.environ["Home"])
subprocess.check_output(['./MyFile'])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15096 次 |
最近记录: |