gpt4 book ai didi

arrays - Python3从列表创建数组(我认为)

转载 作者:行者123 更新时间:2023-12-02 06:45:26 27 4
gpt4 key购买 nike

我正在编写一个在 windows/osx 上运行的 Python3 脚本,它基本上会注销所有 VirtualBox 计算机。

为此,我计划列出所有当前注册的计算机,然后循环输出以取消注册每个计算机。

命令的输出

VBoxManage list vms

"virtual-machine1" {a391df10-c90b-4dcb-b149-c739ddde3b2f}
"virtual-machine2" {5ed8d7a8-df6e-4f4d-8ccc-9aacba90bd66}
"virtual-machine3" {820c4977-0fd2-4d37-8fbf-5760b171dc2a}
"virtual-machine4" {9bbd5b02-ccb7-4fb6-b167-d3ec6a729490}
"virtual-machine5" {816fef2c-05a4-4acb-931c-47877de46547}
"virtual-machine6" {5f2f81ee-6414-4a28-aac6-4921439bfaea}
"virtual-machine7" {03aa7fe4-5c78-4c3a-ac1e-475b704e8449}

如何将双引号内的每个字符串转换为数组,然后使用命令进行迭代以取消注册?

这就是我一直在尝试的

    existing = os.system("VBoxManage list vms")
machines = re.findall(r'"([^"]*)"', existing)
for m in machines:
print(m)

但是继续努力

TypeError: expected string or bytes-like object

最佳答案

返回值os.system不是stdout命令的详细信息,请参阅pydoc 。因此,您无法使用 re就在上面。

您可能想使用subprocess ,如下图:

with subprocess.Popen(["VBoxManage", "list", "vms"], stdout=PIPE) as proc:
machines = re.findall(r'"([^"]*)"', (proc.stdout.read())
....

关于arrays - Python3从列表创建数组(我认为),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46030368/

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