if __name__ == '__main__': with subprocess.Popen(['dir'], stdout=subprocess.PIPE, shell=True, universal_newlines = True) as proc: print(proc.stdout.read()) 输出 更多参考官方文档 4.Popen对象 Popen类实例有以下几个方法 Popen.poll() 检测子进程是否中断,设置并返回returncode Popen.wait(ti...
这里也可以使用p = subprocess.Popen(['ls', '-cl'])来创建子进程。 Popen 对象方法 poll(): 检查进程是否终止,如果终止返回 returncode,否则返回 None。 wait(timeout): 等待子进程终止。 communicate(input,timeout): 和子进程交互,发送和读取数据。 send_signal(singnal): 发送信号到子进程 。 terminate(...
Popen.wait()函数使得父进程等待新创建的进程运行结束,然后再继续父进程的其他任务。且此时可以在Popen.returncode中得到新进程的返回值。 def TestWait(): import subprocess import datetime print (datetime.datetime.now()) p = subprocess.Popen("calc",shell=True) p.wait() print (p.returncode) print (...
而且如果要获得程序返回值,可以在调用Popen.communicate()之后取Popen.returncode的值。 结论:如果使用subprocess.Popen,就不使用Popen.wait(),而使用Popen.communicate()来等待外部程序执行结束。 Popen.wait()¶ Wait for child process to terminate. Set and returnreturncodeattribute. Warning This will deadlock...
>>> p.wait() 0 >>> p.returncode 0 这里也可以使用 p = subprocess.Popen(['ls', '-cl']) 来创建子进程。 Popen 对象的属性 Popen创建的子进程有一些有用的属性,假设 p 是 Popen 创建的子进程,p 的属性包括: 1. p.pid 子进程的PID。
1. Popen.poll():用于检查子进程是否已经结束。设置并返回returncode属性。 2. Popen.wait():等待子进程结束。设置并返回returncode属性。 3. Popen.communicate(input=None):与子进程进行交互。向stdin发送数据,或从stdout和stderr中读取数据。可选参数input指定发送到子进程的参数。Communicate()返回一个元组:(std...
>>> p =subprocess.Popen(args) # Success! shell模式执行等同于:Popen(['/bin/sh', '-c', args[0], args[1], ...]) ## 以下两句代码等价,都是通过shell模式执行`ls -l` subprocess.run('ls -l', shell=True) subprocess.run(['/bin/sh', '-c', 'ls -l'], shell=False) ...
2.1 subprocess.call() 父进程等待子进程完成,并且返回子进程执行的结果 0/1 其实现方式 def call(*popenargs, **kwargs): returnPopen(*popenargs, **kwargs).wait() 例子 out=subprocess.call(["ls", "-l"]) total 88 drwxr-xr-x 5 yangyi staff 170 1 25 22:37 HelloWorld ...
3.subprocess.run()、subprocess.call()、subprocess.check_call()和subprocess.check_output()都是通过对subprocess.Popen的封装来实现的高级函数,因此如果我们需要更复杂功能时,可以通过subprocess.Popen来完成。 4.subprocess.getoutput()和subprocess.getstatusoutput()函数是来自Python 2.x的commands模块的两个遗留函数...
subprocess.Popen返回一个Popen对象,可以通过该对象的方法和属性来与新进程进行交互。常用的方法和属性如下: communicate(input=None):与子进程进行交互,向其发送数据(如果有)并等待其完成。该方法返回一个包含标准输出和标准错误输出的元组。 wait():等待子进程结束,并返回其退出状态。 poll():检查子进程是否已经结束...