Sys python как открыть файл

Обновлено: 06.07.2024

В этой статье вы узнаете три способа выполнить программы Python и Non Python из программы Python.

Метод 1: выполнить файл с подпроцессором

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

Есть несколько способов сделать это, но я нахожу наиболее простым, чтобы быть с импортом «подпроцесса».

Иногда аргументы командной строки могут быть сложными и построены список аргументов непросто. Я рекомендую играть с Джэкс Библиотека в интерактивном терминале, пока вы не получите это. Вам не понадобится это в вашем производственном коде, но может помочь сделать концепцию более понятной.

Если после последующих следующих действий этих шагов вы все еще боретесь, чтобы получить команду выполнить, рассмотрим следующее: использование полного пути файла для выполнения (например, /home/user/script.py или c: \ Program Files \ python 3.9 \ python.exe ), проверка разрешений файла, который вы пытаетесь выполнить, чтобы убедиться, что он на самом деле выполняется исполняемым, проверкой опечатки или чувствительности к регистру.

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

Подготовьте свои аргументы командной строки в Список формат

  1. Джэкс Модуль может помочь с анализом сложных командных строк

В приведенном выше примере список каталогов, созданный по LS -L Команда хранит текст, возвращенный stdout внутри вывод .stutout Отказ Команда печати отобразится, что вывод на экране. Захват вывода выполненных подпроцессов позволит вам включить эту обратную связь в вашу программу. Например, если ваш код создает каталог для пользователя, теперь вы можете проверить, если этот каталог уже существует, прежде чем пытаться создать его снова!

Теперь, когда мы охватывали, как выполнить файл с аргументами, как мы можем создать сценарий Python для себя, который обрабатывает аргументы командной строки?

Способ 2: Выполните файл Python с аргументами с использованием Sys.Argv

Чтобы пройти аргументы в ваш сценарий Python, вам нужно будет импортировать sys модуль. Как только этот модуль импортируется в ваш код, при выполнении sys.argv Существуют, содержащие список всех аргументов, переданных в ваш скрипт.

Рассмотрим следующий скрипт:

Если мы запустим этот скрипт из командной строки с помощью python3 args.py arg1 arg2 это вернется:

Рассмотрим следующий код:

Это грубый и элементарный способ обработки аргументов командной строки. В итоге:

Доступ к аргументам по определенному индексу, например sys.argv [1]

  1. А для петли Может помочь вам, если ваши пользователи размещают аргументы из строя

Другое, что следует подумать, что Python также имеет модуль имени argparse Это позволяет нам делать больше аргументов командной строки более читаемыми способом, а также легко обрабатывать необязательные и позиционные параметры.

Теперь, когда вы знаете, как включить аргументы командной строки в свой скрипт, как вы их используете, если вы используете IDE, как Pycharm?

Метод 3: Выполните файл Python с аргументами в Pycharm

Внутри среды разработки PYCHARM верхняя панель инструментов будет включать вкладку запуска. Нажмите на него и выберите «Редактировать конфигурации». Вглет новое окно, которое позволит вам ввести в необходимые параметры для выполнения вашего сценария.


Модуль sys предоставляет системе особые параметры и функции. В данном разделе мы рассмотрим следующее:

  • sys.argv
  • sys.executable
  • sys.exit
  • sys.modules
  • sys.path
  • sys.platform
  • sys.stdin/stdout/stderr

sys.argv

Значение sys.argv – это список аргументов командной строки, которые причастны к скрипту Python. Первый аргумент, argv[0], имеет аналогичное скрипту Python наименование. В зависимости от платформы, на которой вы работаете, первый аргумент может содержать полный путь к скрипту или к названию файла. Для дополнительных деталей обратитесь к документации. А тем временем, попробуем поработать с парочкой примеров, чтобы познакомиться с этим инструментом:

Если вы запустите это в интерпретаторе, вы получите список с пустой строкой. Давайте создадим файл под названием sysargv.py, со следующим содержимым:

Теперь запустите код в IDLE. Вы увидите список с одним элементом, который содержит путь к вашему скрипту. Попробуем передать скрипту несколько аргументов. Откройте окно терминала \ консоли и при помощи команды cd измените каталоги на тот, в котором находится скрипт. После этого, запустите что-то наподобие этого:

sys.argv

sys.argv

Обратите внимание на то, что будет выведено на экран:

Первый аргумент – это название файла нашего скрипта. Следующие два аргумента в списке – это те, что мы передали нашему скрипту в командной строке.

sys.executable

Значение sys.executable – это полный путь к интерпретатору Python. Это очень полезно, когда вы используете чей-то компьютер, и вам нужно узнать, где установлен Python. В некоторых системах, данная команда не сработает, и выдаст пустую строку с надписью None. Посмотрим, как пользоваться этой функцией:

sys.exit

Данная функция позволяет разработчику выйти из Python. Функция exit принимает необязательный аргумент, обычно целое число, которое дает статус выхода. Ноль считается как успешное завершение. Обязательно проверьте, имеет ли ваша операционная система какие-либо особые значения для своих статусов выхода, чтобы вы могли следить за ними в своем собственном приложении. Обратите внимание на то, что когда вы вызываете exit, это вызовет исключение SystemExit, которое позволяет функциям очистки работать в конечных пунктах блоков try / except. Давайте взглянем на то, как вызывается данная функция:

Запустив данный код в IDLE, вы увидите возникшую ошибку SystemExit. Давайте создадим несколько скриптов для теста. Для начала вам нужно создать основной скрипт, программу, которая будет вызывать другой скрипт Python. Давайте назовем его “call_exit.py”. Скрипт должен содержать следующее:

Теперь создайте скрипт Python под названием“exit.py” и сохраните его в той же папке. Вставьте в него следующий код:

Теперь давайте запустим его:

sys.exit

sys.exit

Как вы могли заметить, написанный нами скрипт exit вернул ноль, так что он успешно заработал. Получается, мы заодно научились вызывать разные скрипты Python изнутри самого Python!

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

sys.path

Значение функции path модуля sys – это список строк, которые указывают путь поиска для модулей. Как правило, данная функция указывает Python, в каких локациях смотреть, когда он пытается импортировать модуль. В соответствии с документацией Python, sys.path инициализируется из переменной окружения PYTHONPATH, плюс зависимое от установки значение, указанное по умолчанию. Давайте взглянем на пример:

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

;)

Удаление пути я оставлю как задание для читателя

sys.platform

Значение sys.platform – идентификатор платформы. Вы можете использовать sys.platform чтобы добавлять модули к sys.path, импортировать разные модули, в зависимости от платформы, или запускать разные части кода. Давайте взглянем:

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

Данный код показывает способы проверки того, используем ли мы определенную операционную систему. Если мы используем Windows, мы получим определенную информацию из реестра Windows, при помощи модуля Python под названием _winreg. Если мы используем Linux, мы можем выполнить команду ls, чтобы получить информацию о каталоге, в котором мы находимся.

sys.stdin / stdout / stderr

Подведем итоги

Существует много других значений и методов в модуле sys. Обратитесь к документации Python, а именно к секции 27.1, если вам нужно углубиться в данный вопрос. Мы многому научились из данной статьи, поздравляю. Теперь вы знаете, как выйти из программы Python, как получить информацию о платформе, работать с аргументами, переданными командной строке, и многому другому.


Являюсь администратором нескольких порталов по обучению языков программирования Python, Golang и Kotlin. В составе небольшой команды единомышленников, мы занимаемся популяризацией языков программирования на русскоязычную аудиторию. Большая часть статей была адаптирована нами на русский язык и распространяется бесплатно.

Модуль sys в Python предоставляет простые функции, которые позволяют нам напрямую взаимодействовать с интерпретатором.

Функции, предоставляемые модулем sys, позволяют нам работать с базовым интерпретатором, независимо от того, является ли он платформой Windows, Macintosh или Linux. В этом уроке мы рассмотрим эти функции и то, что с ними можно сделать.

import sys

Обратите внимание, что перед запуском каких-либо функций нам необходимо импортировать их, используя команду ниже.

sys.modules

Эта функция дает имена существующих модулей Python, импортированных текущей оболочкой. Выполним это в системе:

Я удалил много модулей, так как изначально Python по умолчанию импортирует много модулей. Таким образом, вывод может отличаться, когда вы выполните эту команду в настройках.

sys.argv

Эта функция собирает аргументы String, передаваемые скрипту python. Давайте выполним это в системе, написав скрипт:

Функция sys.argv в python

sys.path

Эта функция просто отображает PYTHONPATH, установленный в текущей системе. Давайте выполним это в системе, написав скрипт:

Метод sys.path в python

sys.stdin

Эта функция используется для взятия. Давайте выполним это в системе, написав скрипт:

Метод sys.stdin

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

sys.copyright

Эта строка просто отображает информацию об авторских правах на текущую установленную версию Python. Давайте выполним это в системе, написав скрипт:

Команда sys.copyright

sys.exit

Этот метод заставляет интерпретатор внезапно завершать текущий поток выполнения. Давайте выполним это в системе, написав скрипт:

Команда sys.exit

sys.getrefcount

Этот метод модуля sys возвращает количество ссылок на объект, в котором он используется. Python отслеживает это значение, поскольку, когда это значение достигает 0 в программе, память для этой переменной очищается. Давайте выполним это в системе, написав скрипт:

Модуль sys предлагает методы, которые позволяют работать с разными элементами среды выполнения Python. С его помощью можно взаимодействовать с интерпретатором, используя разные функции. Но для начала его нужно импортировать.

В этом материале речь пойдет о следующих возможностях модуля sys :

  1. sys.argv
  2. sys.maxsize
  3. sys.path
  4. sys.version
  5. sys.exit

sys.argv

Метод argv возвращает аргументы командной строки, переданные скрипту Python, в виде списка. Важно отметить, что первый аргумент (с индексом 0 ) в списке — это название самого скрипта. Остальные представлены в виде последовательности.

В следующем примере файл с кодом называется test.py .

Время для примера:

Сохраните этот код в файле test.py и запустите его в командной строке вместе со следующими аргументами:

Перед этим необходимо перейти в директорию с файлом или ввести полный абсолютный путь к нему.

В указанной выше команде первым аргументом функции argv является элемент Студенты . sys и PythonRu — второй и третий аргументы.

Нулевым параметром является название самого скрипта, которое командная строка определяет автоматически.

Вывод:

sys.maxsize

Пример (обновите код в test.py ):

Вывод:

sys.path

Метод path из модуля sys возвращает все пути для поиска модулей Python. Формат вывода — список строк.

Ту же операцию можно выполнить обратившись к переменным среды в панели управления и найдя в ней PYTHONPATH . Первый элемент вывода — расположение исполняемого скрипта. Если же эта директория недоступна, то первый элемент будет пустой.

Такое может произойти в том случае, если скрипт был вызван интерактивно (с помощью IDLE, интегрированной среды разработки и обучения на языке Python) или же из стандартного ввода (с помощью инструкции exec ). В дальнейшем список может быть изменен в соответствии с требованиями. В него можно добавлять только строки и байты (другие типы будут игнорироваться).

Вывод:
['C:\\Users\\user_name, 'C:\\Users\\ user_name \\Anaconda3\\pkgs\\nb_anacondacloud-1.2.0-py35_0\\Lib\\site-packages\\nb_anacondacloud-1.2.0-py3.5.egg-info', 'C:\\Users\\ user_name \\AppData\\Local\\Programs\\Python\\Python36\\python.exe', 'C:\\ProgramData\\Anaconda3\\DLLs', 'C:\\ProgramData\\Anaconda3\\lib', 'C:\\ProgramData\\Anaconda3', '', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\Pythonwin', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\extensions', 'C:\\Users\\ user_name \\.ipython']

sys.version

Этот метод показывает версию интерпретатора Python. Он также предоставляет информацию о номере сборки и компиляторе. Информация отображается в виде строки. Рекомендуется использовать метод version_info для получения информации о версии, а не извлекать ее из вывода sys.version .

Вывод:

sys.exit

Метод exit выходит из программы Python или завершает конкретный процесс. Он используется для безопасного завершения программы в случае исключения. Под капотом sys.exit вызывает исключение SystemExit . Это то же самое, что exit или quit в Python.

При вызове SystemExit также исполняются функции блока finally из инструкции try .

Этот метод может включать опциональный аргумент. Его значение по умолчанию равно 0 , что значит, что программа была завершена нормально. Если значение отличается, это говорит о не-нормальном завершении.

Выводы:

В этом материале вы познакомились с базовыми методами из модуля sys , которые помогают взаимодействовать со средой исполнения Python.

Читайте также: