使用python执行相同的批处理文件(.bat)

使用python执行相同的批处理文件(.bat),python,loops,batch-file,spyder,modeling,Python,Loops,Batch File,Spyder,Modeling,我开发了以下循环,用于使用循环运行具有不同降雨集合的模型。除了my.bat文件的执行过程外,脚本工作正常 import os import glob import subprocess ws = (r'C:\Users\Wahid Hussainzada\Desktop\Takahashi_2018_9_test') os.chdir(ws) myFile = glob.glob('*.txt') myModel = glob.glob('2cdrmv3.bat') for i in my

我开发了以下循环,用于使用循环运行具有不同降雨集合的模型。除了my
.bat
文件的执行过程外,脚本工作正常

import os
import glob
import subprocess

ws = (r'C:\Users\Wahid Hussainzada\Desktop\Takahashi_2018_9_test')
os.chdir(ws)
myFile = glob.glob('*.txt')
myModel = glob.glob('2cdrmv3.bat')


for i in myFile:
    if i.startswith('rain'):
        print(i)
        myBat = open(ws+'\wahid.bat','w+')
        myBat.write('cdrmv3.exe param1.txt param2.txt param3.txt param4.txt bsndir.txt slope.txt length.txt order.txt takahashi_landuse.txt takahashi_acc.txt 0 # 1 takahashi_thiessen.txt 13 '+str(i) +' 0 1 out_'+str(i) +' 0 outgrid\outa2 outgrid\outb')
        myBat.close()
        subprocess.call('C:\Users\Wahid Hussainzada\Desktop\Takahashi_2018_9_test\wahid.bat')
    else:
        print("Other txt files than rain files")
            

尝试使用字符串文字

subprocess.call(r'C:\Users\Wahid Hussainzada\Desktop\Takahashi\u 2018\u 9\u test\Wahid.bat)

你可能需要做一些类似的事情

cmd = r'C:\Windows\System32\cmd.exe'
script = r'C:\Users\Wahid Hussainzada\Desktop\Takahashi_2018_9_test\wahid.bat'
subprocess.call([cmd,script])

根据@Joran Beasley的回答,代码可以进行如下小修改:

cmd = r'C:\Windows\System32\cmd.exe'
script = r'Working directory\*.bat'
subprocess.call([script,cmd])

谢谢你的回复。我正在使用Spyder执行代码。我在控制台中看不到.bat文件的执行过程。你能帮我吗?我用的是密码,没有任何错误。它运行了很长时间,没有输出。请参阅
子流程的文档。运行
()。如果指定
shell=True
,则将使用shell运行该命令。但是,如果指定shell=True(),则需要注意安全注意事项