国产探花免费观看_亚洲丰满少妇自慰呻吟_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()

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兖州市| 宁海县| 寿阳县| 南昌县| 平湖市| 日土县| 寻乌县| 庆云县| 保亭| 进贤县| 彩票| 合阳县| 平安县| 抚顺市| 唐山市| 安多县| 汉寿县| 成安县| 武鸣县| 铜陵市| 剑河县| 辽宁省| 四子王旗| 井陉县| 西丰县| 潍坊市| 通海县| 宜兴市| 辉南县| 宝应县| 冷水江市| 柞水县| 舞阳县| 大同市| 辽宁省| 鄂州市| 新河县| 视频| 台安县| 新巴尔虎左旗| 当涂县|