我有一个Python脚本,需要将文件名作为命令参数并处理该文件。然而,我有数千个需要处理的文件,并且我希望在不必每次添加文件名为参数的情况下运行脚本来处理每个文件。
当像这样对单个文件运行脚本时,它可以很好地工作:
myscript.py /my/folder/of/stuff/text1.txt
我有一段代码可以同时完成所有操作,但它不起作用。
for fname in glob.iglob(os.path.join('folder/location')):
proc = subprocess.Popen([sys.executable, 'script/location.py', fname])
proc.wait()
每当我运行上面的代码时,它不会报错,但也没有给我预期的输出。我认为问题在于脚本需要将.txt文件的路径作为参数,而代码只提供了文件所在的文件夹(或者至少不是有效的绝对引用)。
如何解决这个问题?
myscript.py
并将其拆分为函数呢?然后您可以执行from myscript import my_function
,并在需要的每个文件中调用my_function
。 - Blenderos.path.join('folder/location')
没有任何作用。请尝试os.path.join('folder/location', '*.txt')
— 通常会将带有通配符字符的文件名模式参数传递给glob.iglob()
。 - martineau