使用通配符扩展并通过参数在文件上迭代Python脚本

使用通配符扩展并通过参数在文件上迭代Python脚本,python,loops,wildcard,glob,execfile,Python,Loops,Wildcard,Glob,Execfile,我有一些脚本可以对文件进行处理。通常,他们接受文件作为第一个命令行参数,然后接受其他参数 我想编写一个主脚本,它接受要运行的脚本的名称、指定目标文件的通配符(a-laglob),以及可能要传递给输入脚本的参数。主脚本应迭代文件,并使用附加参数运行输入脚本 请注意,输入脚本是遗留的,并且可能不包含结尾处通常的行。他们还可以访问sys.argv 有什么建议吗? 应该让你开始 我还将对脚本进行子处理,并向它们传递参数。您可以尝试类似的方法。(很粗糙,但你明白了) 一个shell脚本,这闻起来像是的一个

我有一些脚本可以对文件进行处理。通常,他们接受文件作为第一个命令行参数,然后接受其他参数

我想编写一个主脚本,它接受要运行的脚本的名称、指定目标文件的通配符(a-la
glob
),以及可能要传递给输入脚本的参数。主脚本应迭代文件,并使用附加参数运行输入脚本

请注意,输入脚本是遗留的,并且可能不包含结尾处通常的
行。他们还可以访问
sys.argv

有什么建议吗?

应该让你开始


我还将对脚本进行子处理,并向它们传递参数。

您可以尝试类似的方法。(很粗糙,但你明白了)


一个shell脚本,这闻起来像是的一个用例。编辑:我认为shell脚本是一个不错的选择。但是,如果您需要跨平台、比shell脚本提供更高的可读性和处理能力,您可以使用它。os.system是一种不好的方法。@JakobBowyer为什么os.system是一种不好的方法,还有什么更好的方法呢?请查看glob。在这种情况下,如何使用子流程?
import os
import sys

def callScripts(wildcard, arguments):
    # convert a list ["hello", "world"] to a space delimited "hello world"
    arguments = " ".join(arguments)
    for file in os.listdir(".")
    # feel free to replace with regex or w/e
    if file.endswith(wildcard)
        # system shell call
        os.system("python " + file + " " + arguments)

if __name__ == "__main__":
    wildcard = sys.argv[1]
    arguments = sys.argv[2:]
    callScripts(wildcard, arguments)