Python - 使用多个不同的文件运行程序

时间:2014-02-28 17:29:09

标签: python

我的研究小组要求我为几个不同的问题运行一堆不同的测试用例。总而言之,有486个不同的文件,每个问题有81个。我对Python知之甚少,而我迄今为止所做的就是让它运行一个测试文件。从命令行运行问题解决程序的命令是:

python Solver.py Tests/testName.txt

当然,我不打算一遍又一遍地输入每个文件的名称,因为这需要太长时间。有没有办法让我为该Tests文件夹中的每个文件运行此命令?这些文件都使用相同的格式命名,其中它类似于[original_filename] _ [Precision] [Criteria] [SpeculationLevel] [PreconditionLevel] .txt,其中precision,criteria,speculationLevel和preconditionLevel都有三个可能的值。我最初使用嵌套for循环编写文件,但这是用Java编写的。

2 个答案:

答案 0 :(得分:1)

我会写一个为你运行它的脚本。

import glob
import subprocess as sub

for file in glob.glob("Tests/*.txt"): # or however you want to build the list
    sub.call(["python","Solver.py",file])

答案 1 :(得分:0)

似乎adsmith对glob.glob的回答应该对你有用(在Windows上也是如此),但这是另一回事。它通过传递文件夹名称作为参数来运行:python runner.py Tests

import fnmatch, os, subprocess, sys
folder = sys.argv[1]
for filename in fnmatch.filter(os.listdir(folder), '*.txt'):
    subprocess.call(['python', 'Solver.py', filename])