wmic CSV输出包含一个包含多个“&引用;s导致python';s的CSV解析器将失败
WMICCSV输出包含一个包含多个“,”的值,该值导致python的CSV解析器失败。 这是wmic中的一个明显缺陷,Microsoft希望我付钱告诉他们。问题是,“有没有办法绕过或解决这种对CSV格式的怪异滥用。” CSV的错误输出示例: C:\Users\Administrator\Desktop>wmic diskdrive获取型号/格式:csvwmic CSV输出包含一个包含多个“&引用;s导致python';s的CSV解析器将失败,python,xml,windows,csv,wmic,Python,Xml,Windows,Csv,Wmic,WMICCSV输出包含一个包含多个“,”的值,该值导致python的CSV解析器失败。 这是wmic中的一个明显缺陷,Microsoft希望我付钱告诉他们。问题是,“有没有办法绕过或解决这种对CSV格式的怪异滥用。” CSV的错误输出示例: C:\Users\Administrator\Desktop>wmic diskdrive获取型号/格式:csv Node,Model FakeHOST,HP LOGICAL VOLUME SCSI Disk Device FakeHOST, Duo 2.4
Node,Model
FakeHOST,HP LOGICAL VOLUME SCSI Disk Device
FakeHOST, Duo 2.41TB, port 0, FASTDrive 1200GB
FakeHOST, Duo 2.41TB, port 1, FASTDrive 1200GB
窗口应显示的输出示例:
C:\Users\Administrator\Desktop>wmic diskdrive get model /format:csv
Node,Model
FakeHOST, "HP LOGICAL VOLUME SCSI Disk Device"
FakeHOST, "Duo 2.41TB, port 0, FASTDrive 1200GB"
FakeHOST, "Duo 2.41TB, port 1, FASTDrive 1200GB"
这一缩短的输出并没有造成如此明显的问题。然而,我只是用这个来表达问题。我需要做的是可靠地(包括空白值)获取系统中当前所有磁盘的信息。
理想情况下,这将通过以下方式实现
wmic diskdrive list /format:csv
但是,由于上述问题。。这将惨遭失败
wmic的输出中是否缺少一个神奇的参数,可以让wmic打印csv转义字符以正确解析此输出?
windows不关心这个问题吗?
宇宙中只有我一个人吗?
我知道也可以从wmic中获取XML。然而,wmic的xml输出非常混乱。如果必须使用xml来解决这个问题,那么如何将其转化为python中有意义的值?原始xml应该可以正常工作。例如:
root=ET.fromstring(subprocess.check_输出('wmic diskdrive get/format:rawxml');models=[m.text for m in root.findall(“.//PROPERTY[@NAME='Model']/VALUE”)]
。我发现translate参数的nocomma选项强制CSV正确,即使这些值不再包含逗号。wmic磁盘驱动器列表/翻译:nocomma/格式:csv@RustyWeber疯狂这是一个额外的参数,并不是因为/format:csv
使用逗号作为分隔符而假设的-转眼-不过修复得不错。