成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python 系統(tǒng)命令調(diào)用

Ryan_Li / 2286人閱讀

摘要:不再推薦使用老的等方法來調(diào)用系統(tǒng)命令,而建議統(tǒng)一使用庫所對應(yīng)的方法如。推薦并記錄一些常用的使用范例標(biāo)準(zhǔn)用法使用數(shù)據(jù)傳參,可以用庫來正確切割命令字符串使用語句替代下由于的入?yún)樽址?,需要把輸入的?shù)組拼接為字符串。

Python 3不再推薦使用老的os.system()、os.popen()、commands.getstatusoutput()等方法來調(diào)用系統(tǒng)命令,而建議統(tǒng)一使用subprocess庫所對應(yīng)的方法如:Popen()、getstatusoutput()、call()。

推薦并記錄一些常用的使用范例:

Popen
# 標(biāo)準(zhǔn)用法使用數(shù)據(jù)傳參,可以用shlex庫來正確切割命令字符串
>>> import shlex, subprocess
>>> command_line = input()
/bin/vikings -input eggs.txt -output "spam spam.txt" -cmd "echo "$MONEY""
>>> args = shlex.split(command_line)
>>> print(args)
["/bin/vikings", "-input", "eggs.txt", "-output", "spam spam.txt", "-cmd", "echo "$MONEY""]
>>> p = subprocess.Popen(args) # Success!
import subprocess
try:
    proc = subprocess.Popen([`ls`, `-a`, `/`], stdout=subprocess.PIPE)
    print(proc.stdout.read())  
except:
    print("error when run `ls` command")
# 使用with語句替代try-except-finally
with Popen(["ifconfig"], stdout=PIPE) as proc:
    log.write(proc.stdout.read())
# Windows下由于Windows API的CreateProcess()入?yún)樽址?# Popen需要把輸入的數(shù)組拼接為字符串。因此建議直接傳入字符串參數(shù)。
p = subprocess.Popen("D:ToolsGitgit-bash.exe --cd="D:Codes"", stdout=subprocess.PIPE)
print(p.stdout.read())
call
import subprocess
try:
    retcode = subprocess.call("mycmd" + " myarg", shell=True)
    if retcode < 0:
        print("Child was terminated by signal", -retcode, file=sys.stderr)
    else:
        print("Child returned", retcode, file=sys.stderr)
except OSError as e:
    print("Execution failed:", e, file=sys.stderr)
getstatusoutput/getoutput
>>> subprocess.getstatusoutput("ls /bin/ls")
(0, "/bin/ls")

>>> subprocess.getoutput("ls /bin/ls")
"/bin/ls"

詳細(xì)可以查閱Python 3官方文檔:

os: https://docs.python.org/3/library/os.htm...

subprocess: https://docs.python.org/3/library/subpro...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/37850.html

相關(guān)文章

  • Python多版本切換工具-Pyenvvirtualenv及Anaconda科學(xué)計算環(huán)境的配置

    摘要:為了安裝科學(xué)計算環(huán)境,控制好版本,今天上午總算折騰好了。切換和使用新的虛擬環(huán)境這樣就能切換為這個版本的虛擬環(huán)境。通過輸入查看現(xiàn)在版本,可以發(fā)現(xiàn)處于虛擬環(huán)境下了。指定包的版本多個版本并存,尤其是和的并存。下面用創(chuàng)建一個名叫的版本為的環(huán)境。 為了安裝Anaconda科學(xué)計算環(huán)境,控制好python版本,今天上午總算折騰好了。 學(xué)習(xí)python有時希望在python2.7環(huán)境下,有時希望在...

    rozbo 評論0 收藏0
  • python模塊之sys

    摘要:返回的信息特定于當(dāng)前線程以及當(dāng)前堆棧幀。出于某些原因,這個值可能無法計算,將返回返回安卓版本的構(gòu)建時間,以整數(shù)表示。僅適用于安卓平臺返回解釋器的檢查間隔??刹僮鞔藢傩詫崿F(xiàn)強制重新加載模塊等。 sys模塊提供對由解釋器使用或維護(hù)的某些變量、與解釋器交互的函數(shù)的訪問接口。 sys.abiflags 在使用標(biāo)準(zhǔn)configure腳本構(gòu)建python的POSIX系統(tǒng)上,該屬性包含了PEP 31...

    csRyan 評論0 收藏0
  • python執(zhí)行shell命令的方法

    摘要:執(zhí)行命令的方法模塊方式說明這個調(diào)用相當(dāng)直接,且是同步進(jìn)行的,程序需要阻塞并等待返回。返回值是依賴于系統(tǒng)的,直接返回系統(tǒng)的調(diào)用返回值,所以和是不一樣的。并能夠獲得新建進(jìn)程運行的返回狀態(tài)。使用模塊的目的是替代等舊的函數(shù)或模塊。 python執(zhí)行shell命令的方法 os模塊 os.system方式: import os os.system(top) os.system(cat /proc...

    PumpkinDylan 評論0 收藏0
  • Python - 模塊module

    摘要:一什么是模塊中,一個文件就稱之為一個模塊。所有的內(nèi)置函數(shù)為避免模塊名沖突,又引入了按目錄來阻止模塊沖突的方法,稱為包。例如下列小程序以自建的模塊,編寫一個的模塊。如果在其他地方導(dǎo)入該模塊時,判斷將失敗,即僅在此模塊單獨運行時生效。 一、什么是模塊 Python中,一個.py文件就稱之為一個模塊。那么使用模塊有什么好處呢? (1)提高了代碼的可維護(hù)性。(2)代碼不必從零開始,當(dāng)一個模塊...

    ranwu 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<