Python 脚本依赖 glob 从命令行获取通配符文件名

在写一个 py 脚本的时候,需要从命令行里面带参数进来,指明需要处理的文件名,这个地方,希望支持 shell 那种 * 的通配符,查了一下,有相关的库,看这里,https://docs.python.org/2/libr…

但是,按照这种搞法,跑起来之后发现不行,glob.glob(sys.argv[2]) 总是只返回一个文件名,查了一下,看到这里,http://stackoverflow.com/quest…

原来,是我们在使用 shell 的时候,在 * 送给到 py 脚本之前,就已经被展开了,那么怎么办呢,原题给了一个方式,说用引号引起来,不过还有另外一种方式,可以遍历 sys.argv 数组

if __name__ == "__main__":
    if len(sys.argv) < 3:
        print "Usage:", sys.argv[0], "path_to_ini path_to_dump_file"
    else:
        for path_to_dump in sys.argv[2:]:
            if os.path.isdir(path_to_dump):
                print path_to_dump, "is a directory, skip..."
            else:
                split(sys.argv[1], path_to_dump)

Leave a Reply

Your email address will not be published. Required fields are marked *