shell调用python函数 参数 返回_Python之系统shell交互(subprocess)
subprocess是Python 2.4中新增的一個模塊,它允許你生成新的進程,連接到它們的 input/output/error 管道,并獲取它們的返回(狀態)碼。這個模塊的目的在于替換幾個舊的模塊和方法,如:os.system
os.spawn*
1. subprocess模塊中的常用函數函數描述subprocess.run()Python 3.5中新增的函數。執行指定的命令,等待命令執行完成后返回一個包含執行結果的CompletedProcess類的實例。
subprocess.call()執行指定的命令,返回命令執行狀態,其功能類似于os.system(cmd)。
subprocess.check_call()Python 2.5中新增的函數。執行指定的命令,如果執行成功則返回狀態碼,否則拋出異常。
其功能等價于subprocess.run(..., check=True)。
subprocess.check_output()Python 2.7中新增的的函數。執行指定的命令,如果執行狀態碼為0則返回命令執行結果,否則拋出異常。
subprocess.getoutput(cmd)接收字符串格式的命令,執行命令并返回執行結果,其功能類似于os.popen(cmd).read()和commands.getoutput(cmd)。
subprocess.getstatusoutput(cmd)執行cmd命令,返回一個元組(命令執行狀態, 命令執行結果輸出),其功能類似于commands.getstatusoutput()。
說明:
在Python 3.5之后的版本中,官方文檔中提倡通過subprocess.run()函數替代其他函數來使用subproccess模塊的功能;
在Python 3.5之前的版本中,我們可以通過subprocess.call(),subprocess.getoutput()等上面列出的其他函數來使用subprocess模塊的功能;
subprocess.run()、subprocess.call()、subprocess.check_call()和subprocess.check_output()都是通過對subprocess.Popen的封裝來實現的高級函數,
因此如果我們需要更復雜功能時,可以通過subprocess.Popen來完成。
subprocess.getoutput()和subprocess.getstatusoutput()函數是來自Python 2.x的commands模塊的兩個遺留函數。它們隱式的調用系統shell,并且不保證其
他函數所具有的安全性和異常處理的一致性。另外,它們從Python 3.3.4開始才支持Windows平臺。
2. 上面各函數的定義及參數說明
函數參數列表:
subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, shell=False, timeout=None, check=False, universal_newlines=False)
subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False, timeout=None)
subprocess.check_call(args, *, stdin=None, stdout=None, stderr=None, shell=False, timeout=None)
subprocess.check_output(args, *, stdin=None, stderr=None, shell=False, universal_newlines=False, timeout=None)
subprocess.getstatusoutput(cmd)
subprocess.getoutput(cmd)
總結
以上是生活随笔為你收集整理的shell调用python函数 参数 返回_Python之系统shell交互(subprocess)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: raid5通常需要几块盘_raid5需要
- 下一篇: 基于qt和mysql的地铁线路系统_[源