【发布时间】:2011-08-31 12:23:51
【问题描述】:
我一直在尝试使用glob.glob 和os.walk 递归地获取与命令行参数(sys.argv[1]) 中的glob 模式匹配的文件列表。问题是,bash(和许多其他 shell)自动将 glob 模式扩展为文件名。
那么标准的 unix 程序(例如grep -R)是如何做到这一点的呢?我意识到它们不在 python 中,但如果这发生在 shell 级别,那应该没关系,对吧?脚本有没有办法告诉 shell 不自动扩展全局模式?看起来set -f 将禁用通配,但我不确定如何足够早地运行它,可以这么说。
我见过 Use a Glob() to find files recursively in Python?,但这并没有涵盖从命令行参数中实际获取 glob 模式。
谢谢!
编辑:
类似于 grep 的 perl 脚本 ack 接受 perl 正则表达式作为其参数之一。因此,ack .* 打印出每个文件的每一行。但是.* 应该扩展到目录中的所有隐藏文件。我尝试阅读脚本,但我不知道 perl;怎么会这样?
【问题讨论】: