gpt4 book ai didi

python - 记录 subprocess.Popen 调用

转载 作者:太空宇宙 更新时间:2023-11-03 19:15:31 25 4
gpt4 key购买 nike

我想记录对 subprocess.Popen 的所有调用,以便我可以创建等效的批处理/shell 文件。

Python如何将参数列表转换为命令?

是否等同于' '.join([args])

例如:

args=['ls', '-A']
subprocess.Popen(args)
# ...

我想获得所有调用的等效文件:

ls -A

最佳答案

不,它不等于(因为某些参数中可能包含空格或其他 shell 元字符)。事实上,除非使用 shell=True,否则 Python 根本不需要将所有参数组合成一个字符串。它使用类似 exec*() 的调用(请参阅 man execve)并在数组中传递参数。

如果您只想输出足够的信息以便稍后重新创建参数列表,那么您可能只想输出 repr(args)

由于您的目标是创建等效的批处理/shell 文件,因此您可能需要采取特殊步骤来引用参数,以便其中的任何特殊元字符不会影响 shell 拆分参数的方式。一种方法是通过一个函数传递每个参数,就像我在 https://gist.github.com/790722 中提出的函数一样。 (尽管它不知道如何对批处理文件进行安全引用)。

关于python - 记录 subprocess.Popen 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11458999/

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