gpt4 book ai didi

python - 为什么在命令行中使用 sys.argv 时没有引号?

转载 作者:太空宇宙 更新时间:2023-11-04 07:56:53 25 4
gpt4 key购买 nike

这是一个错误吗?

#!/usr/bin/env python3.6
# filename: tmp.py
import sys

print(sys.argv)

调用:

python tmp.py find . -name '*.py'

实际输出:

['tmp.py', 'find', '.', '-name', '*.py']

预期输出:

['tmp.py', 'find', '.', '-name', "'*.py'"]

请注意实际输出中缺少引号。

最佳答案

不,因为你的 shell 在将参数传递给 python 之前删除了引号(否则它会扩展 *.py 通配符)

要得到你想要的,你需要:

python tmp.py find -name "'*.py'"

请注意,此行为依赖于 shell。在 Windows 上,由于单引号没有特别的含义,传递 '*.py',你会得到:

['tmp.py', 'find', '.', '-name', "'*.py'"]

另请注意,引号保护的通配符在 Python 方面没有真正的意义,因为您需要去除引号才能使用 glob.glob

评估它们

关于python - 为什么在命令行中使用 sys.argv 时没有引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47318189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com