Python脚本如何对文件通配符匹配
有时候,我们可能会写一些轻量级的脚本去处理很多符合某种pattern的文件,例如“某目录下的 *logfile.csv” 但是,我们大多数脚本的参数都是 sys.argv, 如何解析 wildcard 匹配呢?
test.py
from glob import glob ... if __name__ == "__main__": file_names = glob(sys.argv[1]) for file_name in file_names: do_something(file)
这样就可以像使用其他终端命令一样使用脚本test.py 进行wildcard匹配了
>> test.py ./*logfile.csv
(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)
《Python脚本如何对文件通配符匹配》的相关评论
有个问题在于,bash在传递之前就已经将*给解析掉了,传递进来的实际上是一大坨已经分好的文件。
这样的话只要考虑了argv里头跟着一大坨的参数的情况下就可以搞定。
这样传入反而不美,因为要对*进行转义。
@肥猫
我也比较赞同你的做法,bash来做它擅长做的,传入确定的某个文件名字,然后给Python的脚本解析