如何用Python代码在Windows中运行.bat文件?
我想用Python脚本在Windows上运行一个.bat
文件。
这个ask.bat
文件的内容是:
Application.exe work.xml
我写的Python代码是:
import os
os.system("D:\xxx1\xxx2XMLnew\otr.bat ")
输出结果:当我尝试运行这个文件时,命令提示符只闪了一下,工作没有执行。
注意:我也尝试过用其他斜杠,但还是不行。
10 个回答
16
把路径中的反斜杠 \ 替换成正斜杠 /
import os
os.system("D:/xxx1/xxx2XMLnew/otr.bat ")
34
在编程中,有时候我们需要处理一些数据,这些数据可能来自不同的地方,比如用户输入、文件或者网络请求。为了让程序能够理解这些数据,我们通常会把它们转换成一种程序能识别的格式。
比如说,如果我们从用户那里得到一个数字,可能它是以字符串的形式出现的(也就是一串字符),但我们想要用这个数字进行计算,这时候就需要把它转换成真正的数字格式。
这个过程就叫做“数据转换”。在不同的编程语言中,数据转换的方法可能会有所不同,但基本的思路都是一样的:把一种类型的数据变成另一种类型,以便程序能够正确处理。
有时候,数据转换可能会遇到问题,比如用户输入的内容不符合预期,这时候程序就会报错。因此,在进行数据转换时,我们需要考虑到这些潜在的问题,确保程序能够正常运行。
总之,数据转换是编程中一个非常重要的环节,掌握它能够帮助我们更好地处理各种数据。
import subprocess
filepath="D:/path/to/batch/myBatch.bat"
p = subprocess.Popen(filepath, shell=True, stdout = subprocess.PIPE)
stdout, stderr = p.communicate()
print p.returncode # is 0 if success
54
这个问题在Stack Overflow上已经详细回答过了。你可以看看这个讨论,它应该能解答你所有的问题:执行子进程失败
我自己也试过这个代码:
batchtest.py
from subprocess import Popen
p = Popen("batch.bat", cwd=r"C:\Path\to\batchfolder")
stdout, stderr = p.communicate()
batch.bat
echo Hello World!
pause
我从上面提到的讨论中得到了batchtest.py的例子。