请参考以下代码,该代码创建用于同步执行某些程序的批处理文件。但是在执行第一个文件后,程序停止并询问是否继续批处理。这导致用户输入的延迟。由于我希望在一夜之间运行多个文件,程序会等待用户输入。任何人都可以帮我解决这个错误吗?
import os
from subprocess import call
version = "0.1"
os.system('CLS')
print("////////////////////////////////////////////////")
print("// LS-DYNA Simulation Start Script, V" + version + " //")
print("////////////////////////////////////////////////\n")
input_flag = 0
while input_flag == 0:
solver_type_string = raw_input("Use single or double precision solver (s/d)?")
if solver_type_string == "s":
solver_type_string = "ls971_s_R5.1.1_winx64_p.exe"
print("Choosen Solver: " + solver_type_string + "\n")
input_flag = 1
elif solver_type_string == "d":
solver_type_string = "ls971_d_R5.1.1_winx64_p.exe"
print("Choosen Solver: " + solver_type_string + "\n")
input_flag = 1
else:
print("Invalid input!\n")
current_path = os.path.dirname(os.path.abspath(__file__))
solver_path = "C:\Programme\LSDyna-971.1\program\\" + solver_type_string
batch_file = open("sim_start.bat", "w")
batch_file.write("@echo off\n")
sim_counter = 0
for (path, dirs, files) in os.walk(current_path):
for sim_file in files:
if sim_file.endswith((".k", ".dyn")):
sim_counter = sim_counter + 1
sim_path = path
print("Found: \'" + sim_file + "\'")
batch_file.write("pushd " + sim_path + "\\\n")
batch_file.write(solver_path + " i=" + sim_path + "\\" + sim_file + "\n")
print "\nDone! Found ", sim_counter, " simulation files in total."
batch_file.close()
print "\nStarting LS-DYNA batch run...\n"
call(current_path + "\sim_start.bat")
创建的文件类似于
@echo off
pushd E:\Shah\CPW\t25_nw100_amp25_ptr35_matDC04\
C:\Programme\LSDyna-971.1\program\ls971_d_R5.1.1_winx64_p.exe i=E:\Shah\CPW\t25_nw100_amp25_ptr35_matDC04\t25_nw100_amp25_ptr35_matDC04.dyn
pushd E:\Shah\CPW\t25_nw100_amp30_ptr40_matDC04\
C:\Programme\LSDyna-971.1\program\ls971_d_R5.1.1_winx64_p.exe i=E:\Shah\CPW\t25_nw100_amp30_ptr40_matDC04\t25_nw100_amp30_ptr40_matDC04.dyn
pushd E:\Shah\CPW\t25_nw10_amp15_ptr25_matDC04\
C:\Programme\LSDyna-971.1\program\ls971_d_R5.1.1_winx64_p.exe i=E:\Shah\CPW\t25_nw10_amp15_ptr25_matDC04\t25_nw10_amp15_ptr25_matDC04.dyn
pushd E:\Shah\CPW\t25_nw10_amp20_ptr30_matDC04\
C:\Programme\LSDyna-971.1\program\ls971_d_R5.1.1_winx64_p.exe i=E:\Shah\CPW\t25_nw10_amp20_ptr30_matDC04\t25_nw10_amp20_ptr30_matDC04.dyn
pushd E:\Shah\CPW\t25_nw10_amp25_ptr35_matDC04\
C:\Programme\LSDyna-971.1\program\ls971_d_R5.1.1_winx64_p.exe i=E:\Shah\CPW\t25_nw10_amp25_ptr35_matDC04\t25_nw10_amp25_ptr35_matDC04.dyn
pushd E:\Shah\CPW\t25_nw10_amp30_ptr40_matDC04\
C:\Programme\LSDyna-971.1\program\ls971_d_R5.1.1_winx64_p.exe i=E:\Shah\CPW\t25_nw10_amp30_ptr40_matDC04\t25_nw10_amp30_ptr40_matDC04.dyn
pushd E:\Shah\CPW\t25_nw30_amp15_ptr25_matDc04\
C:\Programme\LSDyna-971.1\program\ls971_d_R5.1.1_winx64_p.exe i=E:\Shah\CPW\t25_nw30_amp15_ptr25_matDc04\t25_nw30_amp15_ptr25_matDc04.dyn
答案 0 :(得分:0)
经过一番研究,我可以得出结论,当我们按下“按住ctrl + c'在批处理运行期间(我按ctrl + c检查ls dyna程序的执行时间),"是否要终止批处理程序的窗口"出现,程序等待用户输入..