gpt4 book ai didi

python - 将字符串作为 Python 命令行参数传递

转载 作者:行者123 更新时间:2023-11-30 21:50:27 26 4
gpt4 key购买 nike

我能够将整数和字符作为 Python 命令行参数传递,但无法将字符串成功传递给以下内容:

if __name__ == '__main__' :
try :
print(len(sys.argv))
arg1 = ast.literal_eval(sys.argv[1])
arg2 = ast.literal_eval(sys.argv[2])
print(arg1)
print(arg2)
except Exception :
print('error')

以下作品:

python test.py 1 2

并打印:

3
1
2

如下:

python test.py ‘1’ ‘2’

它也打印

3
1
2

但是,以下方法不起作用:

python test.py ‘one’ ‘two’

它看到参数的数量,但在尝试获取它们时抛出异常:

3
error

有人可以提供一些有关如何将字符串作为命令行参数传递的指导吗?

谢谢。

最佳答案

你的 shell 会在 python 看到这些引号之前吃掉它们。尝试这样:

python test.py '"one"' '"two"'

顺便说一句,命令行参数无论如何都会作为字符串传递。像这样 literal_eval 它们很奇怪;更好的模式是在需要数字时将字符串转换为数字,否则将它们保留为字符串。这也将使您不必在命令行上对字符串进行两次引号填充。

argparse 模块可以自动为您处理这些内容。

关于python - 将字符串作为 Python 命令行参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20907240/

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