b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

subprocess_subprocess/usr_subprocess stdout

电脑杂谈  发布时间:2017-05-28 08:00:56  来源:网络整理

subprocess.Popen用来创建子进程。subprocess

1)Popen启动新的进程与父进程并行执行,默认父进程不等待新进程结束。

2)p.wait函数使得父进程等待新创建的进程运行结束,然后再继续父进程的其他任务。且此时可以在p.returncode中得到新进程的返回值。

def TestWait():

import subprocess

import datetime

print (datetime.datetime.now())

p=subprocess.Popen("sleep 10",shell=True)

p.wait()

print (p.returncode)

print (datetime.datetime.now())

3) p.poll函数可以用来检测新创建的进程是否结束。

def TestPoll():

import subprocess

import datetime

import time

print (datetime.datetime.now())

p=subprocess.Popen("sleep 10",shell=True)

t = 1

while(t <= 5):

time.sleep(1)

p.poll()

print (p.returncode)

t+=1

print (datetime.datetime.now())

4) p.kill或p.terminate用来结束创建的新进程,在windows系统上相当于调用TerminateProcess(),在posix系统上相当于发送信号SIGTERM和SIGKILL。

def TestKillAndTerminate():

p=subprocess.Popen("notepad.exe")

t = 1

while(t <= 5):

time.sleep(1)

t +=1

p.kill()

#p.terminate()

print ("new process was killed")

5) p.communicate可以与新进程交互,但是必须要在popen构造时候将管道重定向。

def TestCommunicate():

import subprocess

cmd = "dir"

p=subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

(stdoutdata, stderrdata) = p.communicate()

if p.returncode != 0:

print (cmd + "error !")

#defaultly the return stdoutdata is bytes, need convert to str and utf8

for r in str(stdoutdata,encoding='utf8' ).split("\n"):

print (r)

print (p.returncode)

def TestCommunicate2():

import subprocess

cmd = "dir"

#universal_newlines=True, it means by text way to open stdout and stderr

p = subprocess.Popen(cmd, shell=True, universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-49676-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...