使用Python运行.bat文件

问题描述 投票:0回答:4

我有一个批处理文件,我用它来加载一些预构建二进制文件来控制我的设备。它的命令是:

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运行这个批处理文件,请帮帮我。顺便说一句,我尝试了另一个批处理文件,如echo Hello,但没有任何反应。

python windows python-2.7 batch-file
4个回答
0
投票

我认为这应该是这样的:

batch.朋友

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

test.bat的

echo Hello World!
pause

0
投票

这是一个简单的解决方案。

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

0
投票

你也可以用这个

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

test.bat的

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

0
投票

在这里,许多人提出了非常有用的解决方案,但我想指出程序所在位置的重要性。 (Bat文件通常用于自动化任务,以减少时间,这很有可能工作一些任务相关的路径)

import subprocess

os.chdir("YOUR TARGET PATH")

exit_code = subprocess.call(FILEPATH)# FILEPATH is from the standpoint on YOUR TARGET PATH
© www.soinside.com 2019 - 2024. All rights reserved.