Python之subprocess模組、sys模組

來源:互聯網
上載者:User

標籤:外部命令   最大的   列印   system   size   退出   print   exit   版本   

一、subprocess模組

 

# import os# os.system(‘tasklist‘)       #類似cmd輸入系統命令‘‘‘subprocess的目的就是啟動一個新的進程並且與之通訊。subprocess模組中只定義了一個類: Popen。可以使用Popen來建立進程,並與進程進行複雜的互動。‘‘‘import subprocess             #可以替代os.systemimport time#stdout命令正確輸出結果,PIPE進程與進程之間共用的管道,shell=True代表調用命令直譯器obj=subprocess.Popen(    ‘taskliasdfsadfst‘,             #可以輸入系統命令    shell=True,    stdout=subprocess.PIPE,         #如輸入tasklist    stderr=subprocess.PIPE          #如輸入taskliasdfsadfst)# print(obj)stdout_res=obj.stdout.read()      #從兒子將正確的結果放到管道中,父親等兒子將正確的結果放入管道,父親從正確的管道讀結果print(stdout_res.decode(‘gbk‘))   ##windows預設的是gbk編碼的,所以解碼也要用gbkprint(stdout_res)# stderr_res1=obj.stderr.read()              ## stderr_res2=obj.stderr.read()# stderr_res3=obj.stderr.read()# print(stderr_res1.decode(‘gbk‘))          #windows預設的是gbk編碼的,所以解碼也要用gbk# 列印結果:‘taskliasdfsadfst‘ 不是內部或外部命令,也不是可啟動並執行程式# 或批次檔。# print(stderr_res1)                          #第一次從管道中取走,後面再取則為空白# print(stderr_res2)# print(stderr_res3)# import time# time.sleep(50)

 

 

 

二、sys模組

 

import sys# sys.path:擷取指定模組搜尋路徑的字串集合,可以將寫好的模組放在得到的某個路徑下,就可以在程式中import時正確找到。# sys.argv # 用來接收python解譯器執行py檔案後跟的參數#例如:python cp.py argv1 argv2 arg3#sys.argv=[‘cp.py‘,‘argv1‘,‘argv2‘,‘argv3‘]import sysprint(sys.argv[0])print(sys.argv[1])# sys.argv           命令列參數List,第一個元素是程式本身路徑# sys.exit(n)        退出程式,正常退出時exit(0)# sys.version        擷取Python解釋程式的版本資訊# sys.maxint         最大的Int值# sys.path           返回模組的搜尋路徑,初始化時使用PYTHONPATH環境變數的值# sys.platform       返回作業系統平台名稱

 

 

sys實現檔案的拷貝

 

‘‘‘執行檔案:cp.py‘‘‘import sysprint(sys.argv)------------[]# src_file=input(‘請輸入源檔案路徑:‘)src_file=sys.argv[1]           #通過cmd拿到源檔案路徑# dst_file=input(‘請輸入目標檔案路徑:‘)dst_file=sys.argv[2]           #通過cmd拿到目標件路徑with open(src_file,‘rb‘) as read_f,    open(dst_file,‘wb‘) as write_f:    for line in read_f:        write_f.write(line)

 

cmd運行內容:

 

Python之subprocess模組、sys模組

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.