PYTHON:如何将星号(*)作为命令行参数传递

时间:2014-06-20 12:16:55

标签: python

我试图制作一个搜索文件中单词的python脚本。 如果我通过txt,它只会查找 .txt 扩展名的文件,但我想将*作为参数传入每个文件

if sys.argv[4] == "*"

不要工作,如果我尝试

print sys.argv[4]

它打印脚本的名称

find.py

但与

的方式不同
print sys.argv[0]

因为它将返回

./find.py

所以,有人已经遇到了这个问题,当然,已经解决了这个问题?

1 个答案:

答案 0 :(得分:6)

您的 shell 也会对*赋予意义。在调用脚本时需要转义它以防止shell扩展它:

python find.py \*

sys.argv[0]是用于运行脚本的确切名称。这可以是相对路径(./find.py../bin/find.py)或绝对路径,具体取决于它的调用方式。使用os.path.abspath()对其进行规范化。