为批处理提供输入和输出文件?

时间:2016-09-21 23:44:50

标签: python batch-processing

我在目录中有超过100个.txt文件,我想为每个文件运行相同的python脚本。现在我必须输入类似的命令超过100次,因为每个命令都有轻微的变化,因为输入和输出文件名不同。我想知道这是否可以自动完成。

我的代码如下所示:

import pandas as pd
import numpy as np
import os
import argparse

parser = argparse.ArgumentParser(description='Excelseq ')
parser.add_argument('-i','--txt', help='Input file name',required=True)
parser.add_argument('-o','--output',help='output file name', required=True)
args = parser.parse_args()

df = pd.read_csv(args.txt, sep='\t' )
f=open('VD.fasta', "r+")
out = open(args.output, "w")

for line in f:
    title = line[1:]
    title = title.rstrip()

    seq = f.readline()
    seq = seq.rstrip()

    if  df['ReadID'].str.contains(title).any():
        out.write('>{0}\n{1}\n'.format(title,seq))

代码采用1个输入文件:df-i给出,它是.txt文件,脚本检查.txt文件中的ReadID是否在.fasta文件。如果是,脚本将打印出titleseq。但对于每个输出文件,我希望该名称与.txt文件相同,但扩展名为.fasta。

例如:

input file1 : H100.txt
output file1: H100.fasta

input file2 : H101.txt
output file2: H101.fasta

input file3: H102.txt
output file3: H102.fasta

...

如何为超过100个文件自动执行此操作?每次运行需要很长时间,我不想坐在电脑前等待它完成,然后运行下一个。

1 个答案:

答案 0 :(得分:2)

我无法对此进行测试,因为我没有输入文件,也没有安装所有第三方模块。然而,它应该接近你应该做的,正如我试图在评论中解释。

NULL