gpt4 book ai didi

python - 重新创建 python 调用

转载 作者:太空狗 更新时间:2023-10-29 21:45:12 24 4
gpt4 key购买 nike

是否可以将被调用程序本身的 python 程序的可复制粘贴调用拼凑在一起?它不必是完全相同的调用字符串,但参数应该解析为相同的东西。

请注意,' '.join(sys.argv) 不会切断它,不幸的是。这种方法的主要问题是它不能正确地引用参数。考虑 dummy.pyimport sys;打印(sys.argv); print(' '.join(sys.argv))

运行 python dummy.py "1 2" 打印:

['dummy.py', '1 2']
dummy.py 1 2

当然,如果我们复制后者,我们将获得不同的调用。将每个参数用引号引起来也不起作用。考虑 dummy2.py:

import sys
print(sys.argv)
print(' '.join('"{}"'.format(s) for s in sys.argv))

这将中断:

python dummy2.py ' " breaking " '

最佳答案

使用shlex.quote:

import sys
from shlex import quote

print(' '.join(quote(s) for s in sys.argv))

在 shell 中:

python space_in_argv.py "aa bb" ' " breaking " '

产量:

space_in_argv.py 'aa bb' ' " breaking " '

您可能还想包含 sys.executable,请参阅 more detail in the doc .

关于python - 重新创建 python 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47667674/

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