簡體   English   中英

使用Python運行.bat文件

[英]Run .bat file using Python

我有一個批處理文件,可用來加載一些預生成的二進制文件來控制我的設備。 它的命令是:

cd build
java -classpath .;..\Library\mfz-rxtx-2.2-20081207-win-x86\RXTXcomm.jar -
Djava.library.path=..\Library\mfz-rxtx-2.2-20081207-win-x86 tabotSample/Good1
pause

現在,我想使用Python運行批處理文件,並嘗試了os.system(batch,bat) ,並嘗試了使用Popen

import os from subprocess import Popen os.popen("cd TAbot") r=os.popen("hello.bat")

但是,python控制台(Anaconda python 2.7)似乎執行了代碼,但未返回任何內容,也沒有任何反應。 我想從python運行此批處理文件,請幫助我。 順便說一句,我嘗試了popen為另一個批處理文件,例如, echo Hello但沒有任何反應。

你也可以用這個

import subprocess
subprocess.call(["C:\\temp\\test.bat"], shell=False)

測試棒

copy "C:\temp\test.txt" "C:\temp\test2.txt"

我認為這應該像這樣工作:

批處理

from subprocess import Popen
p = Popen("test.bat", cwd=r"C:\path\to\batch\folder")
stdout, stderr = p.communicate()

測試棒

echo Hello World!
pause

這是簡單的解決方案。

from subprocess import Popen
import subprocess

def run_batch_file(file_path):
    Popen(file_path,creationflags=subprocess.CREATE_NEW_CONSOLE)

run_batch_file('file_name.bat')

file_name.bat

echo .bat file running from python
pause

在這里,許多人提出了非常有用的解決方案,但我想指出該程序位於何處的重要性。 (Bat文件通常是為自動化任務而制作的,以減少時間,這很有可能會執行某些與任務相關的路徑)

import subprocess

os.chdir("YOUR TARGET PATH")

exit_code = subprocess.call(FILEPATH)# FILEPATH is from the standpoint on YOUR TARGET PATH

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM