gpt4 book ai didi

Python:获取Popen实例的命令名称

转载 作者:太空狗 更新时间:2023-10-30 01:59:50 25 4
gpt4 key购买 nike

我有一个通过 subprocess.Popen 创建的 Popen 类的实例。我想获取该进程的名称,但找不到任何方法或实例变量可以让我获取该名称。例如,如果我有:

p = subprocess.Popen('ls')

我想找到一种方法来给我进程的名称,它的工作方式如下:

>>> p.name()
ls

最佳答案

答案是否定的,直到最新版本的 Python(不稳定)。

查看the source for 3.2.3 ,您可以看到信息没有存储在对象中(它被丢弃了)。然而,在 the latest development version of Python , 它已添加为 subprocess.Popen.args

因此,假设这会进入 3.3,那么您将唯一一次将其视为一项功能。开发文档没有提到它,但这可能只是因为它们没有被更新。它没有使用下划线 (_args) 作为前缀这一事实意味着它旨在成为一个公共(public)属性。

如果您迫切希望将此作为对象的一部分来执行,最简单的答案就是子类化 subprocess.Popen() 并自己添加数据。也就是说,我真的认为在大多数情况下不值得付出努力。

>>> class NamedPopen(Popen):
... def __init__(self, cargs, *args):
... Popen.__init__(self, cargs, *args)
... self.args = cargs
...
>>> x = NamedPopen("ls")
>>> x.args
'ls'

关于Python:获取Popen实例的命令名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10989077/

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