我正在尝试为系统驱动器提取信息。我遇到的问题是能够将信息分开并将其放在需要的位置。如果有多个卷,则下面是所需的输出:
Mountpoint: C:\
OS Volume: True
GUID: d1dd2893f42711e09090806e6f6e6963
Mountpoint: D:\
OS Volume: False
GUID: b4584ed2e3b211e2ae7d806e6f6e6963
以下是我运行目前所拥有的信息时打印出来的信息:
Mountpoint: C:\
Mountpoint: D:\
OS Volume: True
OS Volume: False
GUID: d1dd2893f42711e09090806e6f6e6963
GUID: b4584ed2e3b211e2ae7d806e6f6e6963
我知道我做错了什么,我不知道如何解决它。我透过互联网看无济于事。这可能只是我的天真。
以下是我正在使用的代码:
def driveInfo(agent):
info = "info " + agent + " | grep "
drives = subprocess.Popen(info + "'\[mountpoints\]'", shell=True, stdout=subprocess.PIPE)
drives, err = drives.communicate()
strdrives = str(drives)
### Volume Information
mount = subprocess.Popen(info + "'\[mountpoints\]'", shell=True, stdout=subprocess.PIPE)
osvol = subprocess.Popen(info + "'\[OSVolume\]'", shell=True, stdout=subprocess.PIPE)
guid = subprocess.Popen(info + "'\[guid\]'", shell=True, stdout=subprocess.PIPE)
### Communicate calls
mount, err = mount.communicate()
osvol, err = osvol.communicate()
guid, err = guid.communicate()
### String conversions
mount = str(mount).strip()
osvol = str(osvol).strip()
guid = str(guid).strip()
### Drive Information Output
for drive in strdrives:
print mount
print osvol
print guid
driveInfo(agent)
答案 0 :(得分:0)
您的驱动器variable
正在迭代strdrives
的内容。但是,在循环中,使用独立变量(mount, osvol, guid
)
如果在strdrives中有多个条目,则预期结果将是重复的文本块 =>最有可能的是,你的变量不包含你所期望的(因此你的分裂不是按预期工作,但你没有提供它)