国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

python中subprocess批量執行linux命令

來源:懂視網 責編:小采 時間:2020-11-27 14:21:52
文檔

python中subprocess批量執行linux命令

python中subprocess批量執行linux命令:本篇文章給大家詳細講述了python中使用subprocess批量執行linux命令的方法,有興趣的朋友參考學習下。可以執行shell命令的相關模塊和函數有:os.systemos.spawnos.popen --廢棄popen --廢棄commands --廢棄,3.x中被移除以上執行shell命令
推薦度:
導讀python中subprocess批量執行linux命令:本篇文章給大家詳細講述了python中使用subprocess批量執行linux命令的方法,有興趣的朋友參考學習下。可以執行shell命令的相關模塊和函數有:os.systemos.spawnos.popen --廢棄popen --廢棄commands --廢棄,3.x中被移除以上執行shell命令

本篇文章給大家詳細講述了python中使用subprocess批量執行linux命令的方法,有興趣的朋友參考學習下。

可以執行shell命令的相關模塊和函數有:

  • os.system

  • os.spawn

  • os.popen --廢棄

  • popen --廢棄

  • commands --廢棄,3.x中被移除

  • 以上執行shell命令的相關的模塊和函數的功能均在 subprocess 模塊中實現,并提供了更豐富的功能。

    subprocess

    call

    執行命令,返回狀態碼

    >>> import subprocess
    >>> ret = subprocess.call(["ls", "-l"], shell=False)
    total 4684
    -rw-r--r-- 1 root root 454 May 5 12:20 aa.py
    -rw-r--r-- 1 root root 0 May 8 16:51 aa.txt
    -rw-r--r-- 1 root root 4783286 Apr 11 16:39 DockerToolbox.exe
    -rw-r--r-- 1 root root 422 May 5 12:20 ip_info.txt
    -rw-r--r-- 1 root root 718 Apr 19 10:52 my.cnf
    >>> ret = subprocess.call("ls -l", shell=True)
    total 4684
    -rw-r--r-- 1 root root 454 May 5 12:20 aa.py
    -rw-r--r-- 1 root root 0 May 8 16:51 aa.txt
    -rw-r--r-- 1 root root 4783286 Apr 11 16:39 DockerToolbox.exe
    -rw-r--r-- 1 root root 422 May 5 12:20 ip_info.txt
    -rw-r--r-- 1 root root 718 Apr 19 10:52 my.cnf
    >>> print(ret)
    0

    check_call

    執行命令,如果執行狀態碼是 0 ,則返回0,否則拋異常

    >>> subprocess.check_call(["ls", "-l"])
    total 4684
    -rw-r--r-- 1 root root 454 May 5 12:20 aa.py
    -rw-r--r-- 1 root root 0 May 8 16:51 aa.txt
    -rw-r--r-- 1 root root 4783286 Apr 11 16:39 DockerToolbox.exe
    -rw-r--r-- 1 root root 422 May 5 12:20 ip_info.txt
    -rw-r--r-- 1 root root 718 Apr 19 10:52 my.cnf
    0
    >>> subprocess.check_call("exit 1", shell=True)
    Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
     File "/usr/local/python3.5/lib/python3.5/subprocess.py", line 581, in check_call
     raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command 'exit 1' returned non-zero exit status 1

    check_output

    執行命令,如果狀態碼是 0 ,則返回執行結果,否則拋異常

    >>> subprocess.check_output(["echo", "Hello World!"])
    b'Hello World!
    '
    >>> subprocess.check_output("exit 1", shell=True)
    Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
     File "/usr/local/python3.5/lib/python3.5/subprocess.py", line 626, in check_output
     **kwargs).stdout
     File "/usr/local/python3.5/lib/python3.5/subprocess.py", line 708, in run
     output=stdout, stderr=stderr)
    subprocess.CalledProcessError: Command 'exit 1' returned non-zero exit status 1

    subprocess.Popen(...)

    用于執行復雜的系統命令

    參數:

    args:shell命令,可以是字符串或者序列類型(如:list,元組)

    bufsize:指定緩沖。0 無緩沖,1 行緩沖,其他 緩沖區大小,負值 系統緩沖

    stdin, stdout, stderr:分別表示程序的標準輸入、輸出、錯誤句柄

    preexec_fn:只在Unix平臺下有效,用于指定一個可執行對象(callable object),它將在子進程運行之前被調用

    close_sfs:在windows平臺下,如果close_fds被設置為True,則新創建的子進程將不會繼承父進程的輸入、輸出、錯誤管道。

    所以不能將close_fds設置為True同時重定向子進程的標準輸入、輸出與錯誤(stdin, stdout, stderr)。

    shell:同上

    cwd:用于設置子進程的當前目錄

    env:用于指定子進程的環境變量。如果env = None,子進程的環境變量將從父進程中繼承。

    universal_newlines:不同系統的換行符不同,True -> 同意使用 n

    startupinfo與createionflags只在windows下有效

    將被傳遞給底層的CreateProcess()函數,用于設置子進程的一些屬性,如:主窗口的外觀,進程的優先級等等

    執行普通命令

    >>> import subprocess
    >>> ret1 = subprocess.Popen(["mkdir","t1"])
    >>> ret2 = subprocess.Popen("mkdir t2", shell=True)
    >>> print(ret1)
    <subprocess.Popen object at 0x7f4d7609dd30>
    >>> print(ret2)
    <subprocess.Popen object at 0x7f4d7609dc18>

    終端輸入的命令分為兩種:

  • 輸入即可得到輸出,如:ifconfig

  • 輸入進行某環境,依賴再輸入,如:python

  • >>> import subprocess
    >>> obj = subprocess.Popen("mkdir t3", shell=True, cwd='/tmp/',)
    >>> import subprocess
    >>> obj = subprocess.Popen(["python"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
    >>> obj.stdin.write("print(1)
    ")
    9
    >>> obj.stdin.write("print(2)")
    8
    >>> obj.stdin.close()
    >>> cmd_out = obj.stdout.read()
    >>> obj.stdout.close()
    >>> cmd_error = obj.stderr.read()
    >>> obj.stderr.close()
    >>> print(cmd_out)
    1
    2
    >>> print(cmd_error)
    >>> import subprocess
    >>> 
    >>> obj = subprocess.Popen(["python"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
    >>> obj.stdin.write("print(1)
    ")
    9
    >>> obj.stdin.write("print(2)")
    8
    >>> 
    >>> out_error_list = obj.communicate()
    >>> print(out_error_list)
    ('1
    2
    ', '')
    >>> obj = subprocess.Popen(["python"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
    >>> out_error_list = obj.communicate('print("hello")')
    >>> print(out_error_list)
    ('hello
    ', '')

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    python中subprocess批量執行linux命令

    python中subprocess批量執行linux命令:本篇文章給大家詳細講述了python中使用subprocess批量執行linux命令的方法,有興趣的朋友參考學習下。可以執行shell命令的相關模塊和函數有:os.systemos.spawnos.popen --廢棄popen --廢棄commands --廢棄,3.x中被移除以上執行shell命令
    推薦度:
    標簽: 如何 linux 命令
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产精品视频大全 | 亚洲国产成人久久综合区 | 极品美女户外勾搭无套 | 欧美一级色图 | 成人精品视频一区二区三区 | 亚洲高清视频一区 | 日韩在线视频在线观看 | 精品一区二区三区五区六区七区 | 亚洲视频一区二区三区 | 亚洲欧美中文日韩综合 | 国产精品视频大全 | 在线欧美日韩制服国产 | 日本欧美一区二区三区不卡视频 | 欧美叉叉 | 精品日韩一区 | 欧美国产成人精品一区二区三区 | 日韩亚洲欧洲在线com91tv | 久久成人国产精品一区二区 | 怡红院一区二区三区 | 在线免费一区 | 午夜国产在线视频 | 国模私拍一区二区三区 | 欧美在线视频网站 | 欧美二区三区 | 在线欧美视频免费观看国产 | 欧美视频免费在线 | 国产爱搞 | 亚洲最大色网 | 色另类| 九九久久精品国产 | 亚洲 欧美 日韩在线 | 免费一级a毛片在线播放直播 | 最近免费中文字幕大全高清片 | 欧美高清日韩 | 国产精品免费播放 | 日韩一区二区三区不卡 | 日韩一区三区 | 中文日韩欧美 | 久操国产| 国内精品久久久久影院不卡 | 国产精品一区在线观看 |