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

python如何啟動cmd批處理文件

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

一、簡單代碼

直接上代碼,理解起來還是比較簡單,os的簡單,控制力比較小,subprocess的可以將相應(yīng)的cmd輸出獲取到,便于進一步分析運行結(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%

運行后輸出如下結(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ù)雜的代碼

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

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

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

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

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

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

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

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

明白了原因:

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

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

相關(guān)文章

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

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

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

    python繪制棉棒圖的方法詳解

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

    教大家使用Python SqlAlchemy

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

    通過cmd進入python的步驟

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

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

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

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

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

    python里使用正則表達式的組嵌套實例詳解

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

    Python?OpenCV實現(xiàn)簡單的顏色識別功能(對紅色和藍色識別并輸出)

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

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

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

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

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

最新評論

宁陕县| 万山特区| 屏边| 衡山县| 云南省| 衡水市| 清流县| 兴义市| 尼勒克县| 赤峰市| 武夷山市| 丰台区| 汝州市| 四子王旗| 五台县| 龙胜| 淄博市| 介休市| 象州县| 象州县| 丹江口市| 文成县| 壤塘县| 达拉特旗| 嘉荫县| 郸城县| 天津市| 辰溪县| 根河市| 河津市| 西乌| 天气| 太和县| 咸阳市| 棋牌| 璧山县| 拉萨市| 镇巴县| 阜新市| 象山县| 岢岚县|