2012-10-30 3 views
1

Я пытаюсь создать программу Python, которая использует функцию os.system() для создания нового процесса (приложения) на основе пользовательского ввода ... Однако это работает только тогда, когда пользователь вводит «notepad.exe». Это не работает, например, когда пользователь вводит «firefox.exe». Я знаю, что это проблема пути, потому что ошибка говорит о том, что файл не существует. Я предполагаю тогда, что Windows имеет некоторую настройку пути по умолчанию для блокнота, которая позволяет запустить блокнот, когда я его прошу? Таким образом, это приводит к моему вопросу: есть ли способ программно найти путь к любому приложению, которое вводит пользователь, если предположить, что он действительно существует? Мне трудно поверить, что единственный способ открыть файл - это определить весь путь в какой-то момент. Или, может быть, есть способ, что Windows делает это для меня, что я не знаю, как получить доступ? Любая помощь будет большой, спасибо!Python - программный путь к файлу?

+0

Вы всегда можете попробовать найти файл, но что происходит, когда пользователь имеет несколько файлов .exe с тем же именем? –

+0

Я могу вернуть этот факт и просить дальнейших уточнений, я думаю. Но является ли принятый способ приблизиться к этому? – eatonphil

+4

Это то же самое во всех операционных системах. Linux предназначен для просмотра в определенных папках, если вы вводите только исполняемое имя, например '/ bin' и'/usr/bin'. Windows делает то же самое, кроме программ, которые вы устанавливаете, обычно не помещается в одну из этих папок путей по умолчанию. Вам лучше определить полный путь, чем поиск всей файловой системы для файла. – Anorov

ответ

1

Я думаю, вы можете добавить расположение файлов в переменную среды PATH. Выполните следующие действия. Перейдите в «Мой компьютер» -> «Правка» -> «Свойства» -> «Расширенные настройки системы» -> «Переменные среды». Теперь нажмите PATH, а затем нажмите EDIT. В поле значения переменной перейдите к концу и добавьте ';' (без кавычек), а затем добавьте абсолютный путь к файлу .exe, который вы хотите запустить через вашу программу.

Смежные вопросы