Как я могу избежать проблем, связанных с символом «», когда я пишу ПУТЬ в Python

#python #path #syntax-error

#python #путь #синтаксическая ошибка

Вопрос:

Я пытался написать код для открытия приложений в Windows 10. Я протестировал, чтобы открыть ярлык, который я скопировал в папку C, как показано ниже, и это сработало:

 import os

os.startfile("C:\TheApp.lnk")
  

Но когда я пытаюсь это сделать, используя другую папку, первый символ имени которой имеет смысл для Python, он выдает ошибку, как показано ниже:

 import os

os.startfile("C:\UsersJohn3D ObjectsVSCODEShortCutsTheApp.lnk")


Traceback (most recent call last):
  File "c:/Users/John/3D Objects/VSCODE/Test2.py", line 3, in <module>
    os.startfile("C:\UsersJohn3D ObjectsVSCODEShortCutsTheApp.lnk")
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'C:\Users\Johnx03D Objects\VSCODE\ShortCuts\TheApp.lnk'
  

Поэтому, когда он становится ‘ 3’ или ‘ v’ или что-то подобное, это не работает.
Кто-нибудь может мне помочь ?!!

Комментарии:

1. Обратная косая черта — это экранирующий символ, поэтому, если вам нужна одна обратная косая черта, вам нужно экранировать ее с помощью экранирующего символа (самой обратной косой черты). Поэтому либо используйте '\' одну обратную косую черту в результирующей строке, либо используйте необработанную строку (например r'filename' ), где правила экранирования не применяются.

Ответ №1:

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

 import os
file = (r"C:UsersJohn3D ObjectsVSCODEShortCutsTheApp.lnk")
os.startfile(file)
  

Ответ №2:

Вы можете использовать os.path.join для этой задачи, т.е. вместо

 import os
os.startfile("C:\UsersJohn3D ObjectsVSCODEShortCutsTheApp.lnk")
  

просто сделайте:

 import os
path = os.path.join('C:\', 'Users', 'John', '3D Objects', 'VSCODE', 'ShortCuts', 'TheApp.lnk')
os.startfile(path)