Python 解析多个文件argparse

Python 解析多个文件argparse,python,parsing,argparse,Python,Parsing,Argparse,我不知道如何通过我的程序解析多个文件。到目前为止,我可以解析一个单一的文件并填充我的字典,没有任何问题。但是,我正在努力通过脚本解析多个文件。当使用通配符(*.txt)包含用于解析的多个文件时,我的程序将充当只解析一个文件的角色(假定它是该组中的第一个或最后一个文件)。我如何使用我的程序来迭代文件列表,而不仅仅是一个文件 下面的代码显示了我的解析参数以及如何将文件传递到\uuuu init\uuuu def __init__(self, file): self.file = file

我不知道如何通过我的程序解析多个文件。到目前为止,我可以解析一个单一的文件并填充我的字典,没有任何问题。但是,我正在努力通过脚本解析多个文件。当使用通配符(*.txt)包含用于解析的多个文件时,我的程序将充当只解析一个文件的角色(假定它是该组中的第一个或最后一个文件)。我如何使用我的程序来迭代文件列表,而不仅仅是一个文件

下面的代码显示了我的解析参数以及如何将文件传递到
\uuuu init\uuuu

def __init__(self, file):
     self.file = file

def main(argv):
    parser = argparse.ArgumentParser()
    parser.add_argument("-f", "--file", dest="input_file", required = True,
                    help="The binary file to be writen to flash")
    parser.add_argument('file', type=argparse.FileType('wb'), nargs='*')

    args = parser.parse_args(argv)

    fault_finder = FaultList(args.input_file)

if __name__ == '__main__':
    main(sys.argv[1:])

我假设我需要遍历已解析文件的列表,但我不确定如何进行。

您可以将
glob
argparse
结合使用,以获得与通配符匹配的所有文件的列表

import argparse  
from glob import glob  

def main(file_names):  
    print file_names  

if __name__ == "__main__":  
    parser = argparse.ArgumentParser()  
    parser.add_argument("file_names", nargs='*') 
    #nargs='*' to combine all positional arguments into a single list 

    args = parser.parse_args()  
    file_names = []

    # use glob to find files matching wildcards
    #if a string does not contain a wildcard, glob will return it as is.
    for arg in args.file_names:  
        file_names += glob(arg)  

main(file_names)

您的解析器需要一个输入文件名、'-f'后面的字符串和多个要写入的文件名(位置'*')。由于
FileType
规范,它创建并打开这些输出文件。但是,由于您不使用
args.file
,因此您没有对这些输出文件执行任何操作。我们不知道
FaultList
对您传递的一个输入文件名做了什么。