国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python進程類subprocess的一些操作方法例子

2020-02-23 06:13:32
字體:
來源:轉載
供稿:網友

subprocess.Popen用來創建子進程。

1)Popen啟動新的進程與父進程并行執行,默認父進程不等待新進程結束。

代碼如下:
def TestPopen():
  import subprocess
  p=subprocess.Popen("dir",shell=True)
  for i in range(250) :
    print ("other things")

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)
  curline = p.stdout.readline()

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 澎湖县| 宣汉县| 揭阳市| 鸡西市| 南澳县| 淮滨县| 茌平县| 乐亭县| 那坡县| 盐边县| 海原县| 天柱县| 双辽市| 宜君县| 肇州县| 松原市| 巩留县| 盈江县| 双流县| 武山县| 克什克腾旗| 阜宁县| 台中县| 湘西| 始兴县| 阿坝| 楚雄市| 泊头市| 宾阳县| 晋江市| 望谟县| 泾川县| 宁南县| 肇庆市| 江西省| 大埔县| 淳化县| 黔西县| 达州市| 神农架林区| 天津市|