最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

對python中執(zhí)行DOS命令的3種方法總結(jié)

 更新時(shí)間:2018年05月12日 08:51:36   作者:zhuguorong11  
今天小編就為大家分享一篇對python中執(zhí)行DOS命令的3種方法總結(jié),具有很好的參考價(jià)值,希望對大家有所幫助一起。一起跟隨小編過來看看吧

1. 使用os.system("cmd")

特點(diǎn)是執(zhí)行的時(shí)候程序會(huì)打出cmd在Linux上執(zhí)行的信息。

import os
os.system("ls") 

2. 使用Popen模塊產(chǎn)生新的process

現(xiàn)在大部分人都喜歡使用Popen。Popen方法不會(huì)打印出cmd在linux上執(zhí)行的信息。的確,Popen非常強(qiáng)大,支持多種參數(shù)和模式。使用前需要from subprocess import Popen, PIPE。但是Popen函數(shù)有一個(gè)缺陷,就是它是一個(gè)阻塞的方法。如果運(yùn)行cmd時(shí)產(chǎn)生的內(nèi)容非常多,函數(shù)非常容易阻塞住。解決辦法是不使用wait()方法,但是也不能獲得執(zhí)行的返回值了。

Popen原型是:

subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0) 

參數(shù)bufsize:指定緩沖。

參數(shù)executable用于指定可執(zhí)行程序。一般情況下我們通過args參數(shù)來設(shè)置所要運(yùn)行的程序。如果將參數(shù)shell設(shè)為 True,executable將指定程序使用的shell。在windows平臺下,默認(rèn)的shell由COMSPEC環(huán)境變量來指定。

參數(shù)stdin, stdout, stderr分別表示程序的標(biāo)準(zhǔn)輸入、輸出、錯(cuò)誤句柄。他們可以是PIPE,文件描述符或文件對象,也可以設(shè)置為None,表示從父進(jìn)程繼承。

參數(shù)preexec_fn只在Unix平臺下有效,用于指定一個(gè)可執(zhí)行對象(callable object),它將在子進(jìn)程運(yùn)行之前被調(diào)用。

參數(shù)Close_sfs:在windows平臺下,如果close_fds被設(shè)置為True,則新創(chuàng)建的子進(jìn)程將不會(huì)繼承父進(jìn)程的輸入、輸出、錯(cuò)誤管 道。我們不能將close_fds設(shè)置為True同時(shí)重定向子進(jìn)程的標(biāo)準(zhǔn)輸入、輸出與錯(cuò)誤(stdin, stdout, stderr)。

如果參數(shù)shell設(shè)為true,程序?qū)⑼ㄟ^shell來執(zhí)行。

參數(shù)cwd用于設(shè)置子進(jìn)程的當(dāng)前目錄。

參數(shù)env是字典類型,用于指定子進(jìn)程的環(huán)境變量。如果env = None,子進(jìn)程的環(huán)境變量將從父進(jìn)程中繼承。

參數(shù)Universal_newlines:不同操作系統(tǒng)下,文本的換行符是不一樣的。如:windows下用'/r/n'表示換,而Linux下用 ‘/n'。如果將此參數(shù)設(shè)置為True,Python統(tǒng)一把這些換行符當(dāng)作'/n'來處理。

參數(shù)startupinfo與createionflags只在windows下用效,它們將被傳遞給底層的CreateProcess()函數(shù),用 于設(shè)置子進(jìn)程的一些屬性,如:主窗口的外觀,進(jìn)程的優(yōu)先級等等。

subprocess.PIPE

在創(chuàng)建Popen對象時(shí),subprocess.PIPE可以初始化stdin, stdout或stderr參數(shù),表示與子進(jìn)程通信的標(biāo)準(zhǔn)流。

subprocess.STDOUT

創(chuàng)建Popen對象時(shí),用于初始化stderr參數(shù),表示將錯(cuò)誤通過標(biāo)準(zhǔn)輸出流輸出。

Popen的方法:

Popen.poll() 

用于檢查子進(jìn)程是否已經(jīng)結(jié)束。設(shè)置并返回returncode屬性。

Popen.wait() 

等待子進(jìn)程結(jié)束。設(shè)置并返回returncode屬性。

Popen.communicate(input=None)

與子進(jìn)程進(jìn)行交互。向stdin發(fā)送數(shù)據(jù),或從stdout和stderr中讀取數(shù)據(jù)??蛇x參數(shù)input指定發(fā)送到子進(jìn)程的參數(shù)。 Communicate()返回一個(gè)元組:(stdoutdata, stderrdata)。注意:如果希望通過進(jìn)程的stdin向其發(fā)送數(shù)據(jù),在創(chuàng)建Popen對象的時(shí)候,參數(shù)stdin必須被設(shè)置為PIPE。同樣,如 果希望從stdout和stderr獲取數(shù)據(jù),必須將stdout和stderr設(shè)置為PIPE。

Popen.send_signal(signal) 

向子進(jìn)程發(fā)送信號。

Popen.terminate()

停止(stop)子進(jìn)程。在windows平臺下,該方法將調(diào)用Windows API TerminateProcess()來結(jié)束子進(jìn)程。

Popen.kill()

殺死子進(jìn)程。

Popen.stdin 

如果在創(chuàng)建Popen對象是,參數(shù)stdin被設(shè)置為PIPE,Popen.stdin將返回一個(gè)文件對象用于策子進(jìn)程發(fā)送指令。否則返回None。

Popen.stdout 

如果在創(chuàng)建Popen對象是,參數(shù)stdout被設(shè)置為PIPE,Popen.stdout將返回一個(gè)文件對象用于策子進(jìn)程發(fā)送指令。否則返回 None。

Popen.stderr 

如果在創(chuàng)建Popen對象是,參數(shù)stdout被設(shè)置為PIPE,Popen.stdout將返回一個(gè)文件對象用于策子進(jìn)程發(fā)送指令。否則返回 None。

Popen.pid 

獲取子進(jìn)程的進(jìn)程ID。

Popen.returncode 

獲取進(jìn)程的返回值。如果進(jìn)程還沒有結(jié)束,返回None。

例如:

p = Popen("cp -rf a/* b/", shell=True, stdout=PIPE, stderr=PIPE) 
p.wait() 
if p.returncode != 0: 
 print "Error." 
 return -1 

3. 使用commands.getstatusoutput方法

這個(gè)方法也不會(huì)打印出cmd在linux上執(zhí)行的信息。這個(gè)方法唯一的優(yōu)點(diǎn)是,它不是一個(gè)阻塞的方法。即沒有Popen函數(shù)阻塞的問題。使用前需要import commands。

例如:

status, output = commands.getstatusoutput("ls") 

還有只獲得output和status的方法:

commands.getoutput("ls") 
commands.getstatus("ls") 

以上這篇對python中執(zhí)行DOS命令的3種方法總結(jié)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解model.train()和model.eval()兩種模式的原理與用法

    詳解model.train()和model.eval()兩種模式的原理與用法

    這篇文章主要介紹了詳解model.train()和model.eval()兩種模式的原理與用法,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,那么看完這篇文章一定會(huì)對你有所幫助
    2023-03-03
  • Python StrEnum基本概念和使用場景分析

    Python StrEnum基本概念和使用場景分析

    StrEnum是Python枚舉家族的一個(gè)強(qiáng)大補(bǔ)充,特別適合處理字符串常量,它結(jié)合了枚舉的類型安全性和字符串的靈活性,使得在許多場景下的編程變得更加簡潔和安全,本文將介紹StrEnum的基本概念和使用場景,并通過示例代碼來展示它的實(shí)際應(yīng)用,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • Python Django教程之模板的使用

    Python Django教程之模板的使用

    模板是 Django MVT 結(jié)構(gòu)的第三個(gè)也是最重要的部分。Django中的模板基本上是用HTML,CSS和Javascript編寫在.html文件中的。本文將通過實(shí)例詳細(xì)聊聊Django模板的使用,感興趣的可以
    2022-10-10
  • numpy中的delete刪除數(shù)組整行和整列的實(shí)例

    numpy中的delete刪除數(shù)組整行和整列的實(shí)例

    今天小編就為大家分享一篇numpy中的delete刪除數(shù)組整行和整列的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python3+selenium配置常見報(bào)錯(cuò)解決方案

    Python3+selenium配置常見報(bào)錯(cuò)解決方案

    這篇文章主要介紹了Python3+selenium配置常見報(bào)錯(cuò)解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • python如何繪制疫情圖

    python如何繪制疫情圖

    這篇文章主要介紹了python如何繪制疫情圖,幫助大家理解和學(xué)習(xí)用python繪制圖像,感興趣的朋友可以了解下
    2020-09-09
  • NumPy 如何生成多維數(shù)組的方法

    NumPy 如何生成多維數(shù)組的方法

    這篇文章主要介紹了NumPy 如何生成多維數(shù)組的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • Python中的np.random.seed()隨機(jī)數(shù)種子問題及解決方法

    Python中的np.random.seed()隨機(jī)數(shù)種子問題及解決方法

    隨機(jī)數(shù)種子,相當(dāng)于我給接下來需要生成的隨機(jī)數(shù)一個(gè)初值,按照我給的這個(gè)初值,按固定順序生成隨機(jī)數(shù),接下來通過本文給大家介紹Python中的np.random.seed()隨機(jī)數(shù)種子問題,需要的朋友可以參考下
    2022-04-04
  • 用python寫爬蟲簡單嗎

    用python寫爬蟲簡單嗎

    在本篇內(nèi)容里小編給大家整理的是關(guān)于用python寫爬蟲是否簡單的相關(guān)內(nèi)容文章,需要的朋友們可以學(xué)習(xí)下。
    2020-07-07
  • 實(shí)現(xiàn)ECharts雙Y軸左右刻度線一致的例子

    實(shí)現(xiàn)ECharts雙Y軸左右刻度線一致的例子

    這篇文章主要介紹了實(shí)現(xiàn)ECharts雙Y軸左右刻度線一致的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05

最新評論

廊坊市| 盖州市| 阳东县| 平凉市| 武宁县| 九台市| 余江县| 西华县| 全州县| 天柱县| 武夷山市| 甘孜| 玉环县| 无为县| 延庆县| 张家界市| 文安县| 宜阳县| 金沙县| 十堰市| 灌阳县| 靖宇县| 旬邑县| 西昌市| 抚远县| 孟连| 白水县| 彭阳县| 宜春市| 淮阳县| 秀山| 措美县| 藁城市| 桃源县| 高清| 新安县| 衡山县| 遵义市| 册亨县| 长春市| 九龙县|