Некоторое время назад я добавил скрипт, который я написал, в контекстное меню. Он мне не был нужен некоторое время, я держал его под рукой. Сегодня я попробовал использовать его снова, и он не сработал.
Я включил изображение ошибки ниже. Заголовок и первая строка — это каталог, который я выбрал.
Я точно знаю, что путь к команде действителен и работает, поскольку я протестировал скрипт в командной строке.
Что я могу сделать, чтобы исправить эту ошибку? Это в Windows 10, если это что-то меняет, и команда выглядит следующим образом:
python M:\Sped\python\Extract\extract.py "%1"
решение1
Если вы видите эту ошибку, скорее всего, путь к папке неверен и/или в контекстном меню оболочки возникли проблемы с вызовами скриптов Python.
Это подход, который я успешно применил для исправления ошибки.
Создать файл реестраmypthonprog.regфайл, похожий на этот:
[HKEY_CLASSES_ROOT\Folder\shell\mypythonprog]
@="mypythonprog"
"Icon"="C:\\Users\\winuser\\AppData\\Local\\Programs\\Python\\Python311\\python.exe ,0"
[HKEY_CLASSES_ROOT\Folder\shell\mypthonprog\Command]
@="c:\\\\mypath\\\\subfolder\\\\myprog.cmd \"%1\""
Название пункта контекстного меню можно изменить сmypthonprogна то, что вы хотите использовать, а также при необходимости измените путь к значку.
Путь к командному файлу можно изменить в соответствии с тем местом, где он находится в вашей файловой системе (предпочтительно навсегда).
Создайте cmd-файлмояпрог.cmdпохоже на это:
"C:\Users\winuser\AppData\Local\Programs\Python\Python311\python.exe" "c:\mypath\subfolder\mypyprog.py" %1
Путь к местоположению Python следует изменить на тот, где у вас установлен Python.
Измените файл Python.mypyprog.pyпохоже на это:
def main():
# Check if a folder path is passed as an argument
if len(sys.argv) < 2:
print("Folder path not provided.")
sys.exit(1)
folder_path = sys.argv[1]
Это позволяет коду Python распознавать передаваемый вами параметр папки.