Python: получить серийный номер тома из файла lnk?

У меня есть файл lnk (файл ярлыка). Я использовал инструмент под названием Windows LNK Parsing Utility (lp), чтобы узнать серийный номер тома, на котором находился исходный файл. Итак, я хотел создать скрипт на Python, делающий то же самое.

Я обнаружил, что модуль win32api должен помочь, поэтому вот мой код:

import win32api, win32con, win32security # win32api main mod, other modules to get SID

path = ('C:\Users\Si\Desktop\Files\Shortcut to Pictures.lnk')

print win32api.GetVolumeInformation(path)


Error says:

Traceback (most recent call last):
File "C:\Users\Si\Desktop\Files\test.py", line 3, in <module> pywintypes.error: (123, 'GetVolumeInformation', 'The filename, directory name, or volume label syntax is incorrect.')

Есть ли другой (возможно, лучший?) Способ добиться этого?

Спасибо


person BubbleMonster    schedule 22.10.2013    source источник


Ответы (1)


Из документации

tuple = GetVolumeInformation(path)

Returns information about a file system and colume whose root directory is specified.

Может быть

win32api.GetVolumeInformation('C:\\')
person MC ND    schedule 22.10.2013
comment
Он работает с 'C: \\', но не с таким файлом, как C: \\ file.txt - person BubbleMonster; 22.10.2013
comment
Извлеките корень из пути к файлу и используйте его вместо полного пути. - person MC ND; 22.10.2013