使用python执行相同的批处理文件(.bat)
我开发了以下循环,用于使用循环运行具有不同降雨集合的模型。除了my使用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
.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(),则需要注意安全注意事项