標籤:外部命令 最大的 列印 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模組