Skip to main content
 首页 » 编程设计

Python新手;拆分一个字符串

2025年05月04日21grandyang

<分区>

我正在尝试为一些开源软件编写补丁,因为它完全不是我想要的——除非我根本不懂 Python!我希望这很简单,但它打败了我。

背景: 我正在编写的补丁是针对我用来管理 KVM 虚拟机集群的 Ganeti,但它不支持 KVM 和 Qemu 所有可能的命令行选项,例如USB 直通,所以我正在尝试修改它以允许此功能。

kvm_cmd.extend() 用于添加 KVM CLI args 数组,这些参数将在 VM 启动时传递。如果参数是空格分隔的,则每个参数都会成为一个单独的字符串,例如-usb -device usb-host,hostbus=1,hostdev=14 变为 "-usb", "-device", "usb-host,hostbus=1,hostdev=14".

编译代码后我正在运行以下命令:

gnt-instance modify -H usb_pass="1;14" 

我希望将其添加到现有的命令行参数列表 "-usb -device usb-host,hostbus=1,hostdev=14"。这是我添加的代码(以及在别处声明变量;HV_USBPASSTHROUGH 是一个字符串,但这是神奇的地方)

usb_pass = instance.hvparams[constants.HV_USBPASSTHROUGH] 
if usb_pass: 
    usb_pass_arr = [] 
    usb_pass_arr = usb_pass.split(";") 
    kvm_cmd.extend(["-usb", "-device", "usb-host,hostbus=%s,hostaddr=%s" % 
                    usb_pass_arr]) 

使用上述代码运行上述命令时出现以下错误:无法启动实例:执行后端函数时出错:格式字符串的参数不足