Python文件询问是否继续批处理文件

时间:2014-06-05 07:44:49

标签: python batch-file

请参考以下代码,该代码创建用于同步执行某些程序的批处理文件。但是在执行第一个文件后,程序停止并询问是否继续批处理。这导致用户输入的延迟。由于我希望在一夜之间运行多个文件,程序会等待用户输入。任何人都可以帮我解决这个错误吗?

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

1 个答案:

答案 0 :(得分:0)

经过一番研究,我可以得出结论,当我们按下“按住ctrl + c'在批处理运行期间(我按ctrl + c检查ls dyna程序的执行时间),"是否要终止批处理程序的窗口"出现,程序等待用户输入..