Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wmic CSV输出包含一个包含多个“&引用;s导致python';s的CSV解析器将失败_Python_Xml_Windows_Csv_Wmic - Fatal编程技术网

wmic CSV输出包含一个包含多个“&引用;s导致python';s的CSV解析器将失败

wmic 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

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.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
使用逗号作为分隔符而假设的-转眼-不过修复得不错。