Создание ярлыка для сетевого пути в Python

Мне нужно создать ярлык для сетевого диска в Python. У нас есть сетевой диск, который сопоставлен с различными буквами на разных компьютерах (то есть: I:\ или R:\), поэтому я не могу поместить букву перед путем, потому что он различен для пользователя. Вместо этого я напрямую использую сетевой путь, но когда я пытаюсь запустить следующий код, я получаю com_error: "Невозможно сохранить ярлык", и он пытается добавить букву перед ним (например, P:) Есть ли быстрый исправить вокруг этой проблемы?

import win32com.client

def main():
    CreateShortcut()

def CreateShortcut():
    shell = win32com.client.Dispatch("WScript.Shell")
    shortcut = shell.CreateShortCut("\\xxxxxxx.xx.xx.xxx.com\\shared\\data\\Test_Results_Location.lnk")
    shortcut.Targetpath = "\\xxxxxxx.xx.xx.xxx.com\\shared\\data\\Machine\\Test_Results"
    #shortcut = shell.CreateShortCut("I:\\Test Results Location.lnk")             # This works fine
    #shortcut.Targetpath = "I:\\Machine\\Test_Results"
    shortcut.save()
    return shortcut

if __name__ == '__main__':
    main()

1 ответ

Решение

Сетевые пути обычно начинаются с двух обратных слешей, например \\server\share чтобы получить доступ к общему ресурсу share на server, Таким образом, при указании пути к этому общему ресурсу вам придется использовать четыре обратных слеша, если вы хотите избежать его:

'\\\\xxxxxxx.xx.xx.xxx.com\\shared\\data\\Machine\\Test_Results'

В качестве альтернативы вы также можете использовать необработанные пути, чтобы они выглядели немного менее сложными, так как вам не нужно избегать обратной косой черты в них:

r'\\xxxxxxx.xx.xx.xxx.com\shared\data\Machine\Test_Results'
Другие вопросы по тегам