#python #command #wrapper
Вопрос:
Я могу выполнить внешнюю команду, жестко закодировав имя файла. Но я хочу иметь возможность выполнить команду для любого файла.
execute_cmd("python sample.py")
Здесь execute_cmd
метод принимает команду «python sample.py» в качестве аргумента и используйте его для извлечения сообщения об ошибке . Вместо того, чтобы давать ‘sample.py’, Я хочу указать путь к любому файлу.
Как я могу это сделать? Или есть какой-то другой способ сделать это?
Комментарии:
1. Как насчет использования sys.argv?
Ответ №1:
Предположим , у вас есть wrapper.py
, вы можете попробовать что-то вроде этого:
import sys
import subprocess
subprocess.run(["python", sys.argv[1]])
и ты называешь это так:
python wrapper.py filename.py
Если вы хотите запустить его в своей среде разработки, по тому же принципу вам нужно передать путь к файлу в качестве параметра.
Однако я не думаю, что в pycharm есть функция, которая каждый раз запрашивает у вас новые параметры, поэтому вам нужно настроить в самом низу, чтобы диалоговое окно отображалось при каждом запуске
Комментарии:
1. это работает для командной строки. Как насчет запуска его в среде IDE?
2. Как ваша среда разработки запускает сценарий-оболочку?
3. Я использую Pycharm community edition 2021.2, я не знаю, как он запускает сценарий-оболочку
4. Указание параметра в конфигурациях по-прежнему означает, что я как бы правильно его закодировал. Мое имя файла вводится пользователем в виде абсолютного пути к файлу. @JechChua
5. Другого выхода нет. Как ваш скрипт может узнать, какой файл запускать?