导入子流程
def shell():
return subprocess.call(["bash","test.sh"])
file = raw_input("输入目录的绝对路径: - ")
file_obj =开放(" test.sh"' WB +&#39)
file_obj.write(" echo ls %s
"%file)
file_obj.closed
print shell()
答案 0 :(得分:1)
您的功能不会返回任何内容。您拨打subprocess.call
但未退回。您正在尝试打印该函数的返回值,但没有任何内容可以让您获得None
。
例如
def foo():
return 5
def bar():
#do nothing
print foo()
print bar()
将输出
5
None
因为foo()
返回5而bar()
没有返回任何内容。
修改强>
你似乎想要输出命令,我假设。如果您阅读subprocess
here的文档,则会看到subprocess.call
返回退出代码,而不是输出。
你想要的是subprocess.check_output()
。请参阅here (on the same page)。
使用参数运行命令并将其输出作为字节字符串返回。
如果返回码非零,则会引发
CalledProcessError
。CalledProcessError
对象将包含returncode
属性中的返回代码以及output
属性中的任何输出。
文档示例:
>>> subprocess.check_output(["echo", "Hello World!"])
'Hello World!\n'
>>> subprocess.check_output("exit 1", shell=True)
Traceback (most recent call last):
...
subprocess.CalledProcessError: Command 'exit 1' returned non-zero exit status 1