Создание ярлыка для сетевого пути в 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'