我试图制作一个搜索文件中单词的python脚本。
如果我通过txt
,它只会查找 .txt 扩展名的文件,但我想将*
作为参数传入每个文件
if sys.argv[4] == "*"
不要工作,如果我尝试
print sys.argv[4]
它打印脚本的名称
find.py
但与
的方式不同print sys.argv[0]
因为它将返回
./find.py
所以,有人已经遇到了这个问题,当然,已经解决了这个问题?
答案 0 :(得分:6)
您的 shell 也会对*
赋予意义。在调用脚本时需要转义它以防止shell扩展它:
python find.py \*
sys.argv[0]
是用于运行脚本的确切名称。这可以是相对路径(./find.py
,../bin/find.py
)或绝对路径,具体取决于它的调用方式。使用os.path.abspath()
对其进行规范化。