2016-07-24 187 views
1

我需要运行多个输入文件的Python脚本,并为每一个,我想生成(用于input_16jun.txt比如我要输出的文件是16jun_output.txt)新的相应的输出文件。我试着做这样的事情:输出重定向到多个文件

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

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

+0

试试这个 - nohup的蟒蛇script.py输入_ {} 16..22 jun.txt | tee {16..22} jun_output.txt& –

+0

仍然是同样的错误:/ – ion20

+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包。