我需要为多个输入文件运行python脚本,对于每个文件,我想生成一个新的相应输出文件(例如,对于input_16jun.txt,我希望输出文件为16jun_output.txt)。我尝试过这样的事情:
nohup python script.py input_{16..22}jun.txt > {16..22}jun_output.txt &
但我不断收到“模糊重定向”错误。有谁知道如何解决这一问题?还是其他更好的方法?
答案 0 :(得分:2)
使用bash循环遍历每个输入文件应该可以。
for f in input_*.txt; do python script.py $f > "${f:6:-4}"_output.txt; done
或者,如果你想在python脚本中进行循环。
import glob
import os
input_files = glob.glob("input_*.txt")
for f in input_files:
os.system("python script.py {} > {}_output.txt".format(f,f.split("input_")[1].rstrip(".txt")))
如果你想并行运行script.py(而不是顺序运行),你也可以考虑使用python multiprocessing
包。