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

python如何啟動(dòng)cmd批處理文件

 更新時(shí)間:2024年06月26日 11:36:26   作者:永遠(yuǎn)的麥田  
這篇文章主要介紹了python如何啟動(dòng)cmd批處理文件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、簡(jiǎn)單代碼

直接上代碼,理解起來還是比較簡(jiǎn)單,os的簡(jiǎn)單,控制力比較小,subprocess的可以將相應(yīng)的cmd輸出獲取到,便于進(jìn)一步分析運(yùn)行結(jié)果

#import os
#os.system("c:\\sam.bat")


import subprocess
cmd = 'cmd.exe c:\\sam.bat'
p = subprocess.Popen("cmd.exe /c" + "c:\\sam.bat abc", stdout=subprocess.PIPE, stderr=subprocess.STDOUT)


curline = p.stdout.readline()
while(curline != b''):
    print(curline)
    curline = p.stdout.readline()
    
p.wait()
print(p.returncode)

附上sam.bat文件:

echo Hello world!
echo show %1%

運(yùn)行后輸出如下結(jié)果:

b'\r\n'
b'c:\\Python34>echo Hello world! \r\n'
b'Hello world!\r\n'
b'\r\n'
b'c:\\Python34>echo show abc \r\n'
b'show abc\r\n'
0

二、稍復(fù)雜的代碼

對(duì)于普通的應(yīng)用以上的代碼已經(jīng)足夠,若是批處理文件比較特別,比如啟動(dòng)的批處理帶有鍵盤輸入?yún)?shù),這樣上面的代碼就會(huì)出現(xiàn)問題,如下的批處理文件:

  • sam.bat
@echo off
echo 顯示命令行參數(shù) %1%
set /p ver=請(qǐng)輸入版本:
echo 輸入的版本為:%ver%

此文件含有兩種參數(shù)輸入:

  • 其一是命令行參數(shù)
  • 其二是鍵盤輸入?yún)?shù)

要求用戶在執(zhí)行過程中輸入版本號(hào),若是用之前的代碼,

你會(huì)發(fā)現(xiàn)程序總是沒有輸入提示,而當(dāng)你輸入完成后,提示及結(jié)果會(huì)一并出來

究其原因是由于讀出來的數(shù)據(jù)readline()是以回車換行為標(biāo)志的

提示語句沒有提示換行,因此直到操作完成后才能讀取到提示文字

明白了原因:

改進(jìn)的方法也就出來了,每次只讀取單個(gè)字符并顯示,直到讀不到為止,print這樣的函數(shù)默認(rèn)換行并且立即輸出,必須加參數(shù)讓其按文件格式打印.另外,之前的數(shù)據(jù)轉(zhuǎn)換是一次性轉(zhuǎn)換,一般不會(huì)出現(xiàn)異常,單個(gè)字節(jié)讀取對(duì)于中文字而言轉(zhuǎn)換會(huì)出異常,必須專門進(jìn)行處理

以下為修改的代碼:

  • sam.py
import subprocess
cmd = 'cmd.exe c:\\sam.bat'
p = subprocess.Popen("cmd.exe /c" + "c:\\sam.bat abc", stdout=subprocess.PIPE, stderr=subprocess.STDOUT)  


byte_data = p.stdout.read(1)    

word_data = b''                 
while(byte_data != b''):
    word_data += byte_data
    try:
        showdata = word_data.decode('gb2312') 

        print(showdata, end="", flush=True) 
        word_data = b''
    except Exception as e:
        #print(e)
        a=0
    byte_data = p.stdout.read(1)
    
p.wait()    
print(p.returncode)

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python typing模塊--類型提示支持

    python typing模塊--類型提示支持

    這篇文章主要介紹python typing模塊類型提示支持, typing 模塊只有在python3.5以上的版本中才可以使用,pycharm目前支持typing檢查,下面進(jìn)入文章一起了解詳細(xì)內(nèi)容吧
    2021-10-10
  • python繪制棉棒圖的方法詳解

    python繪制棉棒圖的方法詳解

    這篇文章主要為大家詳細(xì)介紹了python繪制棉棒圖的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 教大家使用Python SqlAlchemy

    教大家使用Python SqlAlchemy

    如何使用Python SqlAlchemy,本文為大家詳細(xì)介紹Python SqlAlchemy的使用方法,感興趣的朋友可以參考一下
    2016-02-02
  • 通過cmd進(jìn)入python的步驟

    通過cmd進(jìn)入python的步驟

    在本篇文章里小編給大家整理了關(guān)于通過cmd進(jìn)入python的步驟和實(shí)例,需要的朋友們可以參考下。
    2020-06-06
  • Python實(shí)現(xiàn)蒙特卡洛算法小實(shí)驗(yàn)過程詳解

    Python實(shí)現(xiàn)蒙特卡洛算法小實(shí)驗(yàn)過程詳解

    這篇文章主要介紹了Python實(shí)現(xiàn)基于蒙特卡洛算法過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • NumPy性能優(yōu)化的實(shí)例技巧

    NumPy性能優(yōu)化的實(shí)例技巧

    NumPy 提供了一些工具和技巧,幫助用戶優(yōu)化代碼以提高執(zhí)行效率,本文主要介紹了NumPy性能優(yōu)化,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • python里使用正則表達(dá)式的組嵌套實(shí)例詳解

    python里使用正則表達(dá)式的組嵌套實(shí)例詳解

    這篇文章主要介紹了python里使用正則表達(dá)式的組嵌套實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • Python?OpenCV實(shí)現(xiàn)簡(jiǎn)單的顏色識(shí)別功能(對(duì)紅色和藍(lán)色識(shí)別并輸出)

    Python?OpenCV實(shí)現(xiàn)簡(jiǎn)單的顏色識(shí)別功能(對(duì)紅色和藍(lán)色識(shí)別并輸出)

    Python?OpenCV可以用來進(jìn)行顏色識(shí)別,可以通過讀取圖像的像素值,來判斷像素點(diǎn)的顏色,從而實(shí)現(xiàn)顏色識(shí)別,這篇文章主要給大家介紹了關(guān)于Python?OpenCV實(shí)現(xiàn)簡(jiǎn)單的顏色識(shí)別功能(對(duì)紅色和藍(lán)色識(shí)別并輸出)的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • Python工廠函數(shù)用法實(shí)例分析

    Python工廠函數(shù)用法實(shí)例分析

    這篇文章主要介紹了Python工廠函數(shù)用法,結(jié)合實(shí)例形式分析了Python工廠函數(shù)的概念、功能、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2018-05-05
  • python圖像填充與裁剪/resize的實(shí)現(xiàn)代碼

    python圖像填充與裁剪/resize的實(shí)現(xiàn)代碼

    這篇文章主要介紹了python圖像填充與裁剪/resize,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08

最新評(píng)論

安仁县| 盐亭县| 舟曲县| 开化县| 通许县| 长宁县| 金堂县| 台东县| 丘北县| 韩城市| 碌曲县| 云梦县| 南召县| 翁源县| 杭锦旗| 翁牛特旗| 奉新县| 石柱| 财经| 黎城县| 太白县| 瑞金市| 贵定县| 和田县| 平山县| 临汾市| 兴国县| 河津市| 贡山| 平泉县| 板桥市| 青海省| 旬阳县| 崇明县| 米林县| 申扎县| 大关县| 盐边县| 密山市| 都江堰市| 灵川县|