有两种方法可以进行重定向。两者都适用于
subprocess.Popen或
subprocess.call。
shell = True
或executable = /path/to/the/shell
并在那里指定命令。由于您只是将输出重定向到文件,因此请设置关键字参数
stdout = an_open_writeable_file_object
对象指向
output文件的位置。
subprocess.Popen比
subprocess.call。
Popen不会阻塞,允许您在进程运行时与它进行交互,或者在Python程序中继续进行其他 *** 作。调用
Popen返回一个
Popen对象。
call确实会
阻止。它支持与
Popen构造函数相同的所有参数,因此您仍可以设置进程的输出,环境变量等,脚本将等待程序完成,并
call返回表示进程退出状态的代码。
returnpre = call(*args, **kwargs)
与通话基本相同
returnpre = Popen(*args, **kwargs).wait()
call只是一种便利功能。它在CPython的实现是在subprocess.py:
def call(*popenargs, timeout=None, **kwargs): """Run command with arguments. Wait for command to complete or timeout, then return the returnpre attribute. The arguments are the same as for the Popen constructor. Example: retpre = call(["ls", "-l"]) """ with Popen(*popenargs, **kwargs) as p: try: return p.wait(timeout=timeout) except: p.kill() p.wait() raise
如您所见,它周围是薄薄的包装纸
Popen。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)