输出重定向到多个文件

时间:2016-07-24 02:12:10

标签: python bash redirect

我需要为多个输入文件运行python脚本,对于每个文件,我想生成一个新的相应输出文件(例如,对于input_16jun.txt,我希望输出文件为16jun_output.txt)。我尝试过这样的事情:

nohup python script.py input_{16..22}jun.txt > {16..22}jun_output.txt &

但我不断收到“模糊重定向”错误。有谁知道如何解决这一问题?还是其他更好的方法?

1 个答案:

答案 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包。