記錄subprocess 模塊的幾種方法
- Popen
適用于復(fù)雜的調(diào)用方法红符,每次打開關(guān)閉線程都有消耗伐债,多次循環(huán)調(diào)用速度較慢
obj = subprocess.Popen(command, shell=True, close_fds=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
幾種屬性:
communicate(): 返回(stdout, stderr)
- subprocess.run() Python 3.5中新增的函數(shù)。執(zhí)行指定的命令萎馅,等待命令執(zhí)行完成后返回一個(gè)包含執(zhí)行結(jié)果的CompletedProcess類的實(shí)例虹蒋。
- subprocess.call() 執(zhí)行指定的命令飒货,返回命令執(zhí)行狀態(tài)峭竣,其功能類似于os.system(cmd)。
- subprocess.check_call() Python 2.5中新增的函數(shù)扣墩。 執(zhí)行指定的命令呻惕,如果執(zhí)行成功則返回狀態(tài)碼滥比,否則拋出異常。其功能等價(jià)于subprocess.run(..., check=True)守呜。
- subprocess.check_output() Python 2.7中新增的的函數(shù)。執(zhí)行指定的命令,如果執(zhí)行狀態(tài)碼為0則返回命令執(zhí)行結(jié)果郁竟,否則拋出異常。
- subprocess.getoutput(cmd) 接收字符串格式的命令蓖议,執(zhí)行命令并返回執(zhí)行結(jié)果讥蟆,其功能類似于os.popen(cmd).read()和commands.getoutput(cmd)。
- subprocess.getstatusoutput(cmd) 執(zhí)行cmd命令瘸彤,返回一個(gè)元組(命令執(zhí)行狀態(tài), 命令執(zhí)行結(jié)果輸出)质况,其功能類似于commands.getstatusoutput()。