$ script.py *.txt
我想对该目录中的所有 .txt 文件运行 script.py,包括 1.txt、2.txt 和 3.txt。我可以想到两种方法:让 python 脚本处理 globbing,或者让 shell 产生多个进程。
让脚本句柄通配是我更喜欢的方法。
根据防止变量替换后的通配符,我可以使用set -f
它来关闭它。我如何能够专门为 Python 脚本指定此选项?
为什么要通过 Python globbing 执行此操作?恕我直言,shell 脚本将是完美的,并且您将 python 脚本应该执行的核心功能与为*.txt
目录中的所有文件运行它的琐碎任务分开。
如果由于某种原因您需要在脚本中进行吞噬(例如,计算处理的文件总数),则可以使用:
script.py '*.txt'
或者
script.py "*.txt"
如果目录中有大量文件,则iglob()会更好。您必须将 glob 参数作为字符串传递:
$ script.py "*.txt"