#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)