Мы можем более эффективно интегрировать системы и быстро работать с помощью языка программирования Python. Python – это широко используемый язык программирования общего назначения высокого уровня, который был разработан с упором на улучшение читаемости кода.
Синтаксис Python позволяет программистам выразить концепцию всего в нескольких строках кода, а не писать многострочные, как в других языках программирования. У нас есть два следующих типа способов запуска нашего кода на языке программирования Python:
- Использование интерактивного режима.
- Использование режима сценария.
В этом руководстве мы узнаем что такое режим скрипта в Python, как мы можем запустить нашу программу Python в этом режиме и его преимущества.
Система написания сценариев еще называется этимологическим сценарием. Сначала мы пишем программу Python внутри файла (например, сценария) в режиме скрипта, а затем выполняем файл после его сохранения в нашей системе.
Итак, в режиме сценария в Python мы сначала пишем программу Python внутри файла сценария, а затем выполняем ее. Мы можем выполнить сценарий кода либо с помощью командной строки, либо с помощью Python IDE, установленного в нашей системе.
В режиме сценария мы в любой момент можем просмотреть код, который мы написали внутри файла, и изменить его перед выполнением в следующий раз. Вот почему редактирование кода Python становится довольно простым в режиме скрипта, и мы можем редактировать или просматривать код столько раз, сколько захотим.
Мы можем писать длинные фрагменты кода в режиме сценария, и поэтому многие опытные программисты предпочитают его интерактивному режиму выполнения. Файл Python, который мы создаем в данном режиме, обычно сохраняется по умолчанию в папке, в которой установлена наша IDE Python, и сохраняется с расширением файла Python(«.py»).
Запуск программы Python в режиме скрипта
После того, как мы узнали о режиме выполнения сценария в Python, теперь нам приходит в голову вопрос: как мы можем запустить программу Python в режиме сценария. В этом разделе мы узнаем, как можно выполнить скрипт Python. Но прежде чем выполнять сценарий программы Python, давайте сначала создадим его и сохраним в нашей системе.
Создание и сохранение файла сценария программы Python
Мы должны последовательно выполнить следующие шаги, чтобы создать и сохранить сценарий программы Python на нашем устройстве:
Шаг 1. Откройте текстовый редактор Python или любой другой текстовый редактор по нашему выбору (здесь мы будем использовать редактор файлов Python).
Шаг 2: Напишите в текстовом редакторе следующую программу Python:
# Taking two variables from user
a = int(input("Enter a number of integer value: "))
b = int(input("Enter second integer number: "))
# Addition of two input variables
c = a + b
# Printing addition result in the output
print("The addition of two numbers given by you is: ", c)
как мы записали:
Шаг 3: После написания программы Python мы должны сохранить файл внутри папки, в которой установлена наша IDE Python, и мы должны сохранить его с расширением файла Python, то есть с расширением .py. Мы сохранили файл с именем code.py на нашем устройстве для этой программы.
Скрипт Python, содержащий программу Python, успешно создан и сохранен на нашем устройстве, и теперь мы можем перейти к выполнению скрипта.
Выполнение сценария программы Python
Теперь нам нужно выполнить сценарий программы Python, чтобы получить результат работы программы, и у нас есть два пути для этого. Мы собираемся использовать следующие два способа выполнить сценарий программы Python:
- Выполнение с помощью терминала командной строки.
- Выполнение с использованием Python IDE.
Давайте узнаем о каждом методе отдельно и выполним файл скрипта.
Метод 1: выполнение сценария Python с помощью терминала командной строки
Мы можем выполнить файл сценария (code.py), используя терминал командной строки нашей системы. Вывод файла также будет отображаться в оболочке терминала. Чтобы выполнить файл сценария Python, мы должны выполнить следующие шаги:
Шаг 1. Откройте терминал командной строки и найдите каталог, в котором установлена Python IDE в нашей системе (там же, где мы сохранили файл сценария Python). Чтобы найти каталог, мы можем использовать путь к каталогу с ‘cd’, как мы это делали:
Теперь, после написания пути к каталогу, нажмите клавишу ввода, чтобы найти каталог в командной строке.
Шаг 2: Теперь мы должны написать имя файла скрипта (с расширением), и добавить python перед именем файла скрипта следующим образом:
Шаг 3: Когда мы нажимаем клавишу ввода, Python начинает выполнение файла сценария в терминале командной строки.
Когда мы даем требуемые входные значения в коде, мы даже можем видеть вывод программы внутри командной строки.
Так мы можем выполнить наш файл сценария Python в терминале командной строки нашей системы.
Метод 2: выполнение скрипта Python с использованием Python IDE
Помимо выполнения сценария Python через терминал командной строки, мы также можем выполнить файл сценария, напрямую используя Python IDE, установленную в нашей системе. Чтобы выполнить файл сценария Python с помощью Python IDE, мы должны выполнить следующие шаги:
Шаг 1. Откройте Python IDE и откройте файл сценария в Python IDE, используя заданную опцию открытия.
Шаг 2: Теперь, открыв файл, мы увидим опцию запуска вверху:
Или мы даже можем использовать ярлык кнопки «F5» для запуска файла сценария в Python IDE.
Мы видим, что наш файл сценария (code.py) запускается в среде Python IDE, и как только мы дадим необходимые входные значения, мы сможем увидеть вывод программы внутри оболочки Python, как показано ниже:
Выход:
Enter a number of integer value: 38 Enter second integer number: 26 The addition of two numbers given by you is: 64
Так мы можем запустить или выполнить наш файл сценария Python с помощью Python IDE, установленного в нашей системе.
Преимущества режима скрипта
Теперь давайте посмотрим на преимущества использования скриптового режима выполнения программы Python по сравнению с интерактивным режимом выполнения. Ниже приведены преимущества режима выполнения сценария:
- Режим выполнения сценария очень подходит для написания длинных программ Python (программ, содержащих более одной строки кода).
- Мы можем легко редактировать нашу программу Python в режиме сценария.
- Мы можем открывать нашу программу Python сколько угодно раз в режиме скрипта.
- В режиме сценария мы даже можем сохранить написанный код для использования в будущем.
- Режим выполнения скрипта в основном предпочитается всеми экспертами и программистами Python.
Заключение
В этом руководстве мы узнали о выполнении режима сценария в Python. Мы узнали способы, которыми мы можем использовать выполнение режима скрипта для выполнения нашей программы Python.
Наконец, мы увидели преимущества выполнения режима сценария в Python, и, глядя на эти преимущества, мы можем легко сказать, почему эксперты и программисты предпочитают режим выполнения сценария интерактивному режиму выполнения.

Изучаю Python вместе с вами, читаю, собираю и записываю информацию опытных программистов.
Python is a programming language that lets you work quickly and integrate systems more efficiently. It is a widely-used general-purpose, high-level programming language. It was designed with an emphasis on code readability, and its syntax allows programmers to express their concepts in fewer lines of code. In the Python programming language, there are two ways in which we can run our code:
1. Interactive mode
2. Script mode
In this article, we’ll get to know what these modes are and how they differ from each other.
Interactive mode
Interactive etymologically means “working simultaneously and creating impact of our work on the other’s work”. Interactive mode is based on this ideology only. In the interactive mode as we enter a command and press enter, the very next step we get the output. The output of the code in the interactive mode is influenced by the last command we give. Interactive mode is very convenient for writing very short lines of code. In python it is also known as REPL which stands for Read Evaluate Print Loop. Here, the read function reads the input from the user and stores it in memory. Eval function evaluates the input to get the desired output. Print function outputs the evaluated result. The loop function executes the loop during the execution of the entire program and terminates when our program ends. This mode is very suitable for beginners in programming as it helps them evaluate their code line by line and understand the execution of code well.
How to run python code in Interactive mode?
In order to run our program in the interactive mode, we can use command prompt in windows, terminal in Linux, and macOS. Let us see understand the execution of python code in the command prompt with the help of an example:
Example 1:
To run python in command prompt type “python”. Then simply type the Python statement on >>> prompt. As we type and press enter we can see the output in the very next line.
Python3
Output:
Example 2
Let us take another example in which we need to perform addition on two numbers and we want to get its output. We will declare two variables a and b and store the result in a third variable c. We further print c. All this is done in the command prompt.
Python3
a = 2
b = 3
c = a + b
print(c)
Output:
We can see the desired output on the screen. This kind of program is a very short program and can be easily executed in interactive mode.
Example 3:
In this example, we will multiply two numbers and take the numbers as an input for two users. You will see that when you execute the input command, you need to give input in the very next line, i.e. code is interpreted line by line.
Python3
a = int(input())
b = int(input())
c = a * b
print(c)
Output:
Disadvantages of interactive mode
- The interactive mode is not suitable for large programs.
- The interactive mode doesn’t save the statements. Once we make a program it is for that time itself, we cannot use it in the future. In order to use it in the future, we need to retype all the statements.
- Editing the code written in interactive mode is a tedious task. We need to revisit all our previous commands and if still, we could not edit we need to type everything again.
Script Mode
Script etymologically means a system of writing. In the script mode, a python program can be written in a file. This file can then be saved and executed using the command prompt. We can view the code at any time by opening the file and editing becomes quite easy as we can open and view the entire code as many times as we want. Script mode is very suitable for writing long pieces of code. It is much preferred over interactive mode by experts in the program. The file made in the script mode is by default saved in the Python installation folder and the extension to save a python file is “.py”.
How to run python code in script mode?
In order to run a code in script mode follow the following steps.
Step 1: Make a file using a text editor. You can use any text editor of your choice(Here I use notepad).
Step 2: After writing the code save the file using “.py” extension.
Step 3: Now open the command prompt and command directory to the one where your file is stored.
Step 4: Type python “filename.py” and press enter.
Step 5: You will see the output on your command prompt.
Let us understand these steps with the help of the examples:
Example 1:
In order to execute “Hello gfg” using script mode we first make a file and save it.
Now we use the command prompt to execute this file.
Output:
Example 2:
Our second example is the same addition of two numbers as we saw in the interactive mode. But in this case, we first make a file and write the entire code in that file. We then save it and execute it using the command prompt.
Output:
Example 3:
In this example, we write the code for multiplying two numbers. And the numbers which are to be multiplied are taken by the user as an input. In the interactive mode, we saw that as we write the command so does it asks for the input in the very next line. But in script mode we first code the entire program save and then run it in command prompt. The python interpreter executes the code line by line and gives us the result accordingly.
In this example, we see that the whole program is compiled and the code is executed line by line. The output on the shell is entirely different from the interactive mode.
Difference between Interactive mode and Script mode
|
Interactive Mode |
Script Mode |
| It is a way of executing a Python program in which statements are written in command prompt and result is obtained on the same. | In the script mode, the Python program is written in a file. Python interpreter reads the file and then executes it and provides the desired result. The program is compiled in the command prompt, |
| The interactive mode is more suitable for writing very short programs. | Script mode is more suitable for writing long programs. |
| Editing of code can be done but it is a tedious task. | Editing of code can be easily done in script mode. |
| We get output for every single line of code in interactive mode i.e. result is obtained after execution of each line of code. | In script mode entire program is first compiled and then executed. |
| Code cannot be saved and used in the future. | Code can be saved and can be used in the future. |
| It is more preferred by beginners. | It is more preferred by experts than the beginners to use script mode. |
Python is a programming language that lets you work quickly and integrate systems more efficiently. It is a widely-used general-purpose, high-level programming language. It was designed with an emphasis on code readability, and its syntax allows programmers to express their concepts in fewer lines of code. In the Python programming language, there are two ways in which we can run our code:
1. Interactive mode
2. Script mode
In this article, we’ll get to know what these modes are and how they differ from each other.
Interactive mode
Interactive etymologically means “working simultaneously and creating impact of our work on the other’s work”. Interactive mode is based on this ideology only. In the interactive mode as we enter a command and press enter, the very next step we get the output. The output of the code in the interactive mode is influenced by the last command we give. Interactive mode is very convenient for writing very short lines of code. In python it is also known as REPL which stands for Read Evaluate Print Loop. Here, the read function reads the input from the user and stores it in memory. Eval function evaluates the input to get the desired output. Print function outputs the evaluated result. The loop function executes the loop during the execution of the entire program and terminates when our program ends. This mode is very suitable for beginners in programming as it helps them evaluate their code line by line and understand the execution of code well.
How to run python code in Interactive mode?
In order to run our program in the interactive mode, we can use command prompt in windows, terminal in Linux, and macOS. Let us see understand the execution of python code in the command prompt with the help of an example:
Example 1:
To run python in command prompt type “python”. Then simply type the Python statement on >>> prompt. As we type and press enter we can see the output in the very next line.
Python3
Output:
Example 2
Let us take another example in which we need to perform addition on two numbers and we want to get its output. We will declare two variables a and b and store the result in a third variable c. We further print c. All this is done in the command prompt.
Python3
a = 2
b = 3
c = a + b
print(c)
Output:
We can see the desired output on the screen. This kind of program is a very short program and can be easily executed in interactive mode.
Example 3:
In this example, we will multiply two numbers and take the numbers as an input for two users. You will see that when you execute the input command, you need to give input in the very next line, i.e. code is interpreted line by line.
Python3
a = int(input())
b = int(input())
c = a * b
print(c)
Output:
Disadvantages of interactive mode
- The interactive mode is not suitable for large programs.
- The interactive mode doesn’t save the statements. Once we make a program it is for that time itself, we cannot use it in the future. In order to use it in the future, we need to retype all the statements.
- Editing the code written in interactive mode is a tedious task. We need to revisit all our previous commands and if still, we could not edit we need to type everything again.
Script Mode
Script etymologically means a system of writing. In the script mode, a python program can be written in a file. This file can then be saved and executed using the command prompt. We can view the code at any time by opening the file and editing becomes quite easy as we can open and view the entire code as many times as we want. Script mode is very suitable for writing long pieces of code. It is much preferred over interactive mode by experts in the program. The file made in the script mode is by default saved in the Python installation folder and the extension to save a python file is “.py”.
How to run python code in script mode?
In order to run a code in script mode follow the following steps.
Step 1: Make a file using a text editor. You can use any text editor of your choice(Here I use notepad).
Step 2: After writing the code save the file using “.py” extension.
Step 3: Now open the command prompt and command directory to the one where your file is stored.
Step 4: Type python “filename.py” and press enter.
Step 5: You will see the output on your command prompt.
Let us understand these steps with the help of the examples:
Example 1:
In order to execute “Hello gfg” using script mode we first make a file and save it.
Now we use the command prompt to execute this file.
Output:
Example 2:
Our second example is the same addition of two numbers as we saw in the interactive mode. But in this case, we first make a file and write the entire code in that file. We then save it and execute it using the command prompt.
Output:
Example 3:
In this example, we write the code for multiplying two numbers. And the numbers which are to be multiplied are taken by the user as an input. In the interactive mode, we saw that as we write the command so does it asks for the input in the very next line. But in script mode we first code the entire program save and then run it in command prompt. The python interpreter executes the code line by line and gives us the result accordingly.
In this example, we see that the whole program is compiled and the code is executed line by line. The output on the shell is entirely different from the interactive mode.
Difference between Interactive mode and Script mode
|
Interactive Mode |
Script Mode |
| It is a way of executing a Python program in which statements are written in command prompt and result is obtained on the same. | In the script mode, the Python program is written in a file. Python interpreter reads the file and then executes it and provides the desired result. The program is compiled in the command prompt, |
| The interactive mode is more suitable for writing very short programs. | Script mode is more suitable for writing long programs. |
| Editing of code can be done but it is a tedious task. | Editing of code can be easily done in script mode. |
| We get output for every single line of code in interactive mode i.e. result is obtained after execution of each line of code. | In script mode entire program is first compiled and then executed. |
| Code cannot be saved and used in the future. | Code can be saved and can be used in the future. |
| It is more preferred by beginners. | It is more preferred by experts than the beginners to use script mode. |
Код, написанный на языке Python, может храниться в редакторе кода, IDE или файле. И он не будет работать, если не знать, как его правильно запускать.
В этом материале рассмотрим 7 способов запуска кода, написанного на Python. Они будут работать вне зависимости от операционной системы, среды Python или местоположения кода.
Python-код можно запустить одним из следующих способов:
- С помощью командной строки операционной системы (shell или терминал);
- С помощью конкретной версии Python или Anaconda;
- Использовать Crontab;
- Запустить код с помощью другого Python-скрипта;
- С помощью файлового менеджера;
- Использовать интерактивный режим Python;
- Использовать IDE или редактор кода.
Запуск Python-кода интерактивно
Для запуска интерактивной сессии нужно просто открыть терминал или командную строку и ввести python (или python3 в зависимости от версии). После нажатия Enter запустится интерактивный режим.
Вот как запустить интерактивный режим в разных ОС.
Интерактивный режим в Linux
Откройте терминал. Он должен выглядеть приблизительно вот так :

После нажатия Enter будет запущен интерактивный режим Python.
Интерактивный режим в macOS
На устройствах с macOS все работает похожим образом. Изображение ниже демонстрирует интерактивный режим в этой ОС.

Интерактивный режим в Windows
В Windows нужно открыть командную строку и ввести python. После нажатия Enter появится приблизительно следующее:

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

Этот код должен выводить целые числа от 0 до 5. В данном случае вывод — все, что появилось после print(i).
Для выхода из интерактивного режима нужно написать следующее:
И нажать Enter. Вы вернетесь в терминал, из которого и начинали.
Есть и другие способы остановки работы с интерактивным режимом Python. В Linux нужно нажать Ctrl + D, а в Windows — Ctrl + Z + Enter.
Стоит отметить, что при использовании этого режима Python-скрипты не сохраняются в локальный файл.
Как выполняются Python-скрипты?
Отличный способ представить, что происходит при выполнении Python-скрипта, — использовать диаграмму ниже. Этот блок представляет собой скрипт (или функцию) Python, а каждый внутренний блок — строка кода.
Первая строка (кода):
Вторая = строка кода
Третья строка > кода:
Четвертая (строка == кода)
Пятая строка кода
При запуске скрипта интерпретатор Python проходит сверху вниз, выполняя каждую из них. Именно таким образом происходит выполнение кода.
Но и это еще не все.
Блок-схема выполнения кода интерпретатором
- Шаг 1: скрипт или .py-файл компилируется, и из него генерируются бинарные данные. Готовый файл имеет расширение .pyc или .pyo.
- Шаг 2: генерируется бинарный файл. Он читается интерпретатором для выполнения инструкций.
Это набор инструкций, которые приводят к финальному результату.
Иногда полезно изучать байткод. Если вы планируете стать опытным Python-программистом, то важно уметь понимать его для написания качественного кода.
Это также пригодится для принятия решений в процессе. Можно обратить внимание на отдельные факторы и понять, почему определенные функции/структуры данных работают быстрее остальных.
Как запускать Python-скрипты?
Для запуска Python-скрипта с помощью командной строки сначала нужно сохранить код в локальный файл.
Возьмем в качестве примера файл, который был сохранен как python_script.py. Сохранить его можно вот так:
- Создать Python-скрипт из командной строки и сохранить его,
- Создать Python-скрипт с помощью текстового редактора или IDE и сохранить его. Просто создайте файл, добавьте код и сохраните как «python_script.py»
Сохранить скрипт в текстовом редакторе достаточно легко. Процесс ничем не отличается от сохранения простого текстового файла.
Но если использовать командную строку, то здесь нужны дополнительные шаги. Во-первых, в самом терминале нужно перейти в директорию, где должен быть сохранен файл. Оказавшись в нужной папке, следует выполнить следующую команду (на linux):
sudo nano python_script.py
После нажатия Enter откроется интерфейс командной строки, который выглядит приблизительно следующим образом:

Теперь можно писать код и с легкостью сохранять его прямо в командной строке.
Как запускать скрипт в командной строке?
Скрипты можно запустить и с помощью команды Python прямо в интерфейсе терминала. Для этого нужно убедиться, что вы указали путь до него или находитесь в той же папке. Для выполнения скрипта (python_script.py) откройте командную строку и напишите python3 python_script.py.
Замените python3 на python, если хотите использовать версию Python2.x.
Вот что будет храниться в самом файле python_script.py:
for i in range(0,5):
print(i)
Вывод в командной строке будет следующим:
~$ python python_script.py
0
1
2
3
4
Предположим, что нужно сохранить вывод этого года (0, 1, 2, 3, 4). Для этого можно использовать оператор pipe.
Это делается вот так:
python python_script.py > newfile.txt
После этого будет создан файл «newfile.txt» с сохраненным выводом.
Как выполнять код интерактивно
Есть больше 4 способов запустить Python-скрипт интерактивно. Рассмотрим их все подробно.
Использование import для запуска скриптов
Импорт модулей для загрузки скриптов и библиотек используется постоянно. Можно даже написать собственный скрипт (например code1.py) и импортировать его в другой файл без необходимости повторять то же самое.
Вот как нужно импортировать code1.py в новом скрипте.
Но таким образом импортируется все содержимое файла code1.py. Это не проблема до тех пор, пока не появляется необходимость, в том, чтобы код был оптимизирован и быстро работал.
Предположим, что внутри файла есть маленькая функция, например chart_code1(), которая рисует красивый график. И нужна только она. Вместо того чтобы взывать весь скрипт целиком, можно вызвать ее.
Вот как это обычно делается.
>>> from code1 import chart_code1
Теперь появляется возможность использовать chart_code1 в новом файле так, будто бы эта функция была написана здесь.
Использование importlib для запуска кода
import_module() из importlib позволяет импортировать и исполнять другие Python-скрипты.
Это работает очень просто. Для скрипта code1.py нужно сделать следующее:
import importlib
import.import_module('code1')
И нет необходимости добавлять .py в import_module().
Разберем случай, когда есть сложная структура папок, и нужно использовать importlib. Предположим, что структура следующая:
level1 | +– __init__.py – level2 | +– __init__.py – level3.py
В таком случае, написав, например, importlib.import_module("level3"), вы получите ошибку. Это называется относительным импортом и работает за счет явного использования относительного пути.
Так, для запуска скрипта level3.py можно написать так:
importlib.import_module('.level3', 'level1.level')
# или так
importlib.import_module('level1.level2.level3')
Запуск кода с помощью runpy
Модуль runpy ищет и исполняет Python-скрипт без импорта. Он также легко используется, ведь достаточно просто вызывать имя модуля в run_module().
Вот как, например, выполнить code1.py с помощью runpy.
>>> import runpy
>>> runpy.run_module(mod_name="code1")
Запуск кода динамически
Рассмотрим функцию exec(), которая также используется для динамического выполнения скриптов. В Python2 эта функция была инструкцией.
Вот как она помогает выполнять код динамически на примере строки.
>>> print_the_string = 'print("Выполнен динамический код")'
>>> exec(print_the_string)
Однако этот способ уже устарел. Он медленный и непредсказуемый, а Python предлагает массу других вариантов.
Запуск скриптов Python из текстового редактора
Для запуска кода с помощью текстового редактора можно использовать команду по умолчанию (run) или горячие клавиши (Function + F5 или просто F5 в зависимости от ОС).
Вот пример того, как код выполняется в IDLE.

Но стоит обратить внимание на то, что в данном случае нет контроля над виртуальной средой, как это бывает при исполнении с помощью интерфейса командной строки.
Поэтому IDE и продвинутые редакторы текста куда лучше базовых редакторов.
Запуск кода из IDE
IDE можно использовать не только для запуска Python-кода, но также для выбора среды и отладки.
Интерфейс этих программ может отличаться, но список возможностей должен совпадать: сохранение, запуск и редактирование кода.
Запуск кода из файлового менеджера
Что если бы был способ запустить Python-скрипт двойным кликом по файлу с ним. Это можно сделать, создав исполняемый файл. Например, в случае с Windows для этого достаточно создать файл с расширением .exe и запустить его двойным кликом.
Как запустить Python-скрипт из другого кода
Хотя об этом явно не говорилось, можно прийти к выводу, что в случае с Python есть возможность:
- Запустить скрипт в командной строке, и этот скрипт будет вызывать другой код;
- Использовать модуль для загрузки другого скрипта.
Основные моменты
- Python-код можно писать в интерактивном и не-интерактивном режимах. При выходе из интерактивного режима вы теряете данные. Поэтому лучше использовать
sudo nano your_python_filename.py. - Код можно запускать с помощью IDE, редактора кода или командной строки.
- Есть разные способы импорта кода и использования его из другого скрипта. Выбирайте вдумчиво, рассматривая все преимущества и недостатки.
- Python читает написанный код, транслирует его в байткод, который затем используется как инструкция — все это происходит при запуске скрипта. Поэтому важно учиться использовать байткод для оптимизации Python-кода.
На чтение 10 мин Просмотров 10.9к. Опубликовано 16.06.2021
Содержание
- Введение в тему
- Где запускать Python скрипты и как
- Запуск Python кода интерактивно
- Интерактивный режим в Linux
- Интерактивный режим в macOS
- Интерактивный режим в Windows
- Запуск python скриптов в интерактивном режиме
- Как выполняются python скрипты
- Блок схема выполнения кода интерпретатором
- Как запускать python скрипты
- Как запускать скрипт в командной строке
- Как выполнять код интерактивно
- Использование import для запуска скриптов
- Использование importlib для запуска кода
- Запуск кода с помощью runpy
- Запуск кода динамически
- Запуск скриптов python из текстового редактора
- Запуск кода из ide
- Запуск кода из файлового менеджера
- Как запустить python скрипт из другого кода
Введение в тему
В этом уроке мы ответим на вопрос: как запустить программу на Python? Чтобы ощутить всю мощь языка Пайтон необходимо уметь запускать код, написанный на нём. Программы на Python 3 запускаются независимо от операционной системы, версии языка и местоположения кода. Программа может храниться в файле, среде разработки или редакторе кода.
Где запускать Python скрипты и как
Запустить программу на Python можно несколькими способами:
1. С помощью консоли (командной строки);
2. Использовать конкретную версию Пайтон или Анаконда;
3. Использовать Crontab;
4. Запустить одну программу Пайтон с помощью другого;
5. Использовать файловый менеджер;
6. Используя интерактивный режим Пайтон;
7. Применить редактор кода или IDE.
Запуск Python кода интерактивно
Если открыть консоль и набрать «python3» + «Enter», то запустится Python shell – интерактивный режим исполнения кода Python. Это означает, что в этом режиме Вы можете построчно вводить код и он, так же построчно, будет выполняться. Чаще всего этот режим используют для отладки каких-то небольших частей программы, а также для запуска скриптов, к примеру, управляющих сервером.
Интерактивный режим в Linux
Для запуска кода в интерактивном режиме в Linux достаточно открыть терминал, ввести ~$ python и нажать Enter. Готово!
Интерактивный режим в macOS
В macOS всё устроено так же: вводим /$ python и Enter. Интерактивный режим запущен.
Интерактивный режим в Windows
В операционной системе Windows необходимо войти в командную строку и ввести python. После нажатия Enter консоль будет выглядеть следующим образом:
Запуск python скриптов в интерактивном режиме
В интерактивном режиме можно писать код для проверки гипотез, отладки и прочего. Программа будет выполняться построчно.
Microsoft Windows [Version 10.0.19042.1052]
(c) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.
C:UsersDushenko>python
Python 3.9.2 (tags/v3.9.2:1a79785, Feb 19 2021, 13:44:55) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> var = [i for i in range(10)]
>>> print(var)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Символ «>>>» является «приглашением», то есть язык при помощи этого символа приглашает Вас что-то ввести.
Строчки без этого символа в начале – это «вывод». Вывод – это то, что выводит сам язык, его ответ на код, введённый программистом.
Для выхода из интерактивного режима нужно ввести:
И нажать Enter. Так Вы выйдете из интерактивного режима и вернетесь в терминал, из которого начинали.
Есть и прочие способы выхода из интерактивного режима Python. В Linux нужно нажать Ctrl + D, а в Windows — Ctrl + Z + Enter.
Так же, вместо «exit()», можно ввести:
Результат будет тем же. Эта команда идентична exit() и введена в язык исключительно для удобства программистов.
Обратите внимание что при использовании этого режима Питон-скрипты не сохраняются в файл.
Как выполняются python скрипты
Чтобы понять как происходит выполнение Python-скрипта можно рассмотреть следующий пример:
>>> print(6)
6
>>> var = 654
>>> print(var)
654
>>> for i in range(1, 11):
... print(i)
...
1
2
3
4
5
6
7
8
9
10
При выполнении программы Питон читает каждую строку сверху вниз и сразу выполняет её. Если встречается команда «print()», интерпретатор выводит то, что заключено в скобки этой команды. Если встречается команда «input()», Питон будет ожидать ввод с клавиатуры и, после нажатия Enter, перейдёт к выполнению следующей строки.
Блок схема выполнения кода интерпретатором
Общая схема выполнения программы выглядит так:
1. Программа или файл с расширением .py компилируется, и из него генерируются байт-коды. Итоговый код имеет расширение .pyc или .pyo.
Файлы с расширением .pyc автоматически создаются интерпретатором при импортировании кода, что оптимизирует будущие импорты этого модуля. Поэтому такие файлы создаются только из .py файлов, если они импортируются другим файлом или модулем с расширением .py.
Файлы .pyo также создается интерпретатором при импорте модуля, но с указанием интерпретатору включения параметров оптимизации.
Оптимизатор активируется добавлением флага «-O» при вызове интерпретатора Python:
python -O
Файлы .pyo меньше по размеру, благодаря алгоритмам оптимизации, применённым интерпретатором.
Тип файла .pyd, в отличие от предыдущих, применим исключительно для ОС Windows. Эти файлы аналогичны подключаемым библиотекам DLL.
2. Генерируется бинарный файл. Он читается интерпретатором для выполнения инструкций.
Опытные разработчики Python иногда читают байт-коды для лучшего понимания работы программы.
Как запускать python скрипты
Для запуска Python-скрипта с помощью командной строки необходимо сохранить программу в файл.
Возьмем в качестве примера файл, который был сохранен как script.py. Сохранить его можно несколькими способами:
— Создать Пайтон-скрипт из командной строки и сохранить его,
— Создать Пайтон -скрипт с помощью текстового редактора или IDE (к примеру, PyCharm) и сохранить его. Просто создайте файл, запишите код и сохраните как «script.py»
Сохранить программу в текстовом редакторе очень просто. Процесс ничем не отличается от сохранения простого текстового файла.
Как запускать скрипт в командной строке
Программы можно запускать с помощью команды Пайтон прямо в консоле. Для этого нужно удостовериться, что вы выбрали путь до него или уже находитесь в нужной папке. Для исполнения скрипта откройте консоль и введите python3 script.py.
Код, который будет записан в файле script.py:
var = input("Введите любое число ")
print([i * var for i in range(1, 11)])
Вывод в консоли будет следующим:
['9', '99', '999', '9999', '99999', '999999', '9999999', '99999999', '999999999', '9999999999']
Предположим, что нужно сохранить вывод этого кода ([‘9′, ’99’, ‘999’, ‘9999’, ‘99999’, ‘999999’, ‘9999999’, ‘99999999’, ‘999999999’, ‘9999999999’]). Для этого можно использовать оператор pipe.
Это происходит так:
python script.py > file.txt
После этого будет создан файл «file.txt» с сохраненным выводом.
Как выполнять код интерактивно
Существует большое разнообразие способов запустить скрипт, написанный на Питоне, интерактивно.
Использование import для запуска скриптов
Очень часто используется импорт скриптов. Фактически, Вы не встретите ни одной программы на Пайтон, не использующей импорты. Существует главный принцип программирования – DRY – don’t repeat yourself. Это означает что повторение одного и того же кода в разных местах – плохой подход к написанию кода. Именно для следования этому принципу создана модульность. Если Вы хотите многократно использовать небольшой кусок кода, Вам поможет разделение кода на функции. Если же речь идёт о больших фрагментах, то на помощь приходит модульность.
Вот как можно импортировать script.py в другую программу.
Таким образом в программу импортируется всё, что находится в файле script.py. Это не является проблемой до тех пор, пока не возникает потребность, в том, чтобы программа была оптимизирована и быстро выполнялась.
Представим, что внутри файла существует небольшая функция, к примеру, prime_code(), которая выводит привлекательный график. И, кроме неё другие функции не нужны. Создадим другой .py файл и назовём его main. Теперь в нём можно взывать не весь скрипт, а только необходимую функцию.
Обычно это делают так:
from script import prime_code
Теперь появляется возможность использовать prime_code в новом файле так, будто бы эта функция была написана в текущем коде (в файле main.py).
Использование importlib для запуска кода
import_module() из importlib позволяет импортировать и использовать другие Python3-скрипты.
Это работает очень просто. В скрипте main.py необходимо сделать следующее:
import importlib
import.import_module('script')
И нет необходимости добавлять .py в import_module().
Если требуемый модуль находится в другой папке, то, при использовании importlib необходимо указывать относительный путь, например так:
importlib.import_module('.script', 'Fake.Path')
Запуск кода с помощью runpy
Модуль runpy находит и выполняет Питон-скрипт без импорта. Он также просто используется, ведь достаточно просто вызывать модуль run_module().
Вот как, например, выполнить script.py с помощью runpy.
import runpy
runpy.run_module(mod_name=" script ")
Запуск кода динамически
Рассмотрим функцию exec(), которая также используется для динамического выполнения скриптов.
Вот как она помогает выполнять код «на лету» на примере строки.
print_the_string = 'print("Выполнен произвольный код")'
exec(print_the_string)
Однако этот способ уже устарел. Он медленный и непредсказуемый, а Python предлагает массу других вариантов.
Запуск скриптов python из текстового редактора
Для запуска кода с помощью текстового редактора можно использовать команду по умолчанию (run) или горячие клавиши (Function + F5 или просто F5 в зависимости от ОС).
Вот пример того, как код выполняется в IDLE.
Но стоит обратить внимание на то, что в данном случае нет контроля над виртуальной средой, как это бывает при исполнении с помощью интерфейса командной строки.
Поэтому IDE и продвинутые редакторы текста куда лучше базовых редакторов.
Запуск кода из ide
Среду исполнения можно использовать не только для выполнения Пайтон-кода, но и для отладки.
Интерфейс этих программ может отличаться, но список возможностей должен совпадать: сохранение, запуск и редактирование кода.
Запуск кода из файлового менеджера
Что если бы был способ запустить Пайтон-скрипт двойным кликом по файлу с ним. Это можно сделать, создав исполняемый файл. Например, в случае с Windows для этого достаточно создать файл с расширением .exe и запустить его двойным кликом.
Как запустить python скрипт из другого кода
Об этом не было речи, но можно сделать вывод, что в случае с Питоном есть такой вариант:
— Запустить код в консоли, и эта программа будет вызывать другой код;
— Использовать часть программы для исполнения другой части кода.
16.1. Интерактивный режим¶
16.1.1. Обработка ошибок¶
При возникновении ошибки интерпретатор печатает сообщение об ошибке и трассировку стека. В интерактивном режиме он возвращается к первичному приглашению; если ввод осуществляется из файла, он завершается с ненулевым статусом выхода после печати трассировки стека. (Исключения, обработанные предложением except в операторе try, не являются ошибками в данном контексте). Некоторые ошибки являются безусловно фатальными и вызывают выход с ненулевым статусом выхода; это относится к внутренним несоответствиям и некоторым случаям исчерпания памяти. Все сообщения об ошибках записываются в стандартный поток ошибок; обычный вывод от выполненных команд записывается в стандартный вывод.
Ввод символа прерывания (обычно Control-C или Delete) в первичный или вторичный запрос отменяет ввод и возвращает к первичному запросу. 1 Ввод прерывания во время выполнения команды вызывает исключение KeyboardInterrupt, которое может быть обработано оператором try.
16.1.2. Исполняемые сценарии Python¶
В BSD’ish Unix системах сценарии Python можно сделать непосредственно исполняемыми, как сценарии оболочки, поместив строку
(предполагается, что интерпретатор находится на компьютере пользователя PATH) в начале сценария и придания файлу исполняемого режима. Строка #! должна быть первыми двумя символами файла. На некоторых платформах эта первая строка должна заканчиваться окончанием строки в стиле Unix ('n'), а не в стиле Windows ('rn'). Обратите внимание, что для начала комментария в Python используется символ хэша, или фунта, '#'.
Сценарию можно задать исполняемый режим, или разрешение, с помощью команды chmod.
В системах Windows не существует понятия «исполняемый режим». Программа установки Python автоматически ассоциирует файлы .py с python.exe, так что двойной щелчок на файле Python запустит его как сценарий. Расширение также может быть .pyw, в этом случае консольное окно, которое обычно появляется, подавляется.
16.1.3. Интерактивный файл запуска¶
При интерактивном использовании Python часто бывает удобно, чтобы некоторые стандартные команды выполнялись при каждом запуске интерпретатора. Это можно сделать, установив переменную окружения с именем PYTHONSTARTUP в имя файла, содержащего ваши команды запуска. Это похоже на функцию .profile в оболочках Unix.
Этот файл читается только в интерактивных сеансах, а не когда Python читает команды из сценария, и не когда в качестве явного источника команд указывается /dev/tty (что в остальном ведет себя как интерактивный сеанс). Она выполняется в том же пространстве имен, где выполняются интерактивные команды, так что объекты, которые она определяет или импортирует, могут быть использованы в интерактивном сеансе без оговорок. В этом файле можно также изменить подсказки sys.ps1 и sys.ps2.
Если вы хотите прочитать дополнительный файл запуска из текущего каталога, вы можете запрограммировать это в глобальном файле запуска, используя код типа if os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read()). Если вы хотите использовать файл запуска в сценарии, вы должны сделать это явно в сценарии:
import os filename = os.environ.get('PYTHONSTARTUP') if filename and os.path.isfile(filename): with open(filename) as fobj: startup_file = fobj.read() exec(startup_file)
16.1.4. Модули настройки¶
Python предоставляет два крючка для настройки: sitecustomize и usercustomize. Чтобы увидеть, как это работает, сначала нужно найти расположение каталога пользовательского сайта-пакетов. Запустите Python и выполните следующий код:
>>> import site >>> site.getusersitepackages() '/home/user/.local/lib/python3.5/site-packages'
Теперь вы можете создать файл с именем usercustomize.py в этом каталоге и поместить в него все, что захотите. Он будет влиять на каждый вызов Python, если только он не запущен с опцией -s для отключения автоматического импорта.
sitecustomize работает аналогичным образом, но обычно создается администратором компьютера в глобальном каталоге site-packages и импортируется перед usercustomize. Более подробную информацию смотрите в документации модуля site.
Сноски
- 1
-
Проблема с пакетом GNU Readline может помешать этому.
Вернуться на верх
Многие языки программирования имеют специальную функцию, которая автоматически выполняется, когда операционная система запускает программу. Эта функция обычно называетсяmain() и должна иметь определенный тип возвращаемого значения и аргументы в соответствии со стандартом языка. С другой стороны, интерпретатор Python выполняет сценарии, начиная с верхней части файла, и нет никакой специальной функции, которую Python выполняет автоматически.
Тем не менее, наличие определенной начальной точки для выполнения программы полезно для понимания того, как работает программа. Программисты Python придумали несколько соглашений для определения этой отправной точки.
Основной Python main ()
В некоторых скриптах Python вы можете увидеть определение функции и условный оператор, который выглядит следующим образом:
def main():
print("Hello World!")
if __name__ == "__main__":
main()
В этом коде есть функция с именемmain(), которая печатает фразуHello World!, когда интерпретатор Python выполняет ее. Существует также условный оператор (илиif), который проверяет значение__name__ и сравнивает его со строкой"__main__". Когда операторif оценивается какTrue, интерпретатор Python выполняетmain(). Вы можете узнать больше об условных операторах вConditional Statements in Python.
Этот шаблон кода довольно часто встречается в файлах Python, которые должны бытьexecuted as a script иimported in another module. Чтобы понять, как будет выполняться этот код, вы должны сначала понять, как интерпретатор Python устанавливает__name__ в зависимости от того, как выполняется код.
Режимы выполнения в Python
Есть два основных способа, которыми вы можете дать интерпретатору Python команду выполнить или использовать код:
-
Вы можете выполнить файл Python какscript с помощью командной строки.
-
Вы можетеimport код из одного файла Python в другой файл или в интерактивный интерпретатор.
Вы можете узнать больше об этих подходах вHow to Run Your Python Scripts. Независимо от того, какой способ выполнения кода вы используете, Python определяет специальную переменную с именем__name__, которая содержит строку, значение которой зависит от того, как используется код.
Мы будем использовать этот пример файла, сохраненного какexecution_methods.py, чтобы исследовать, как поведение кода изменяется в зависимости от контекста:
print("This is my file to test Python's execution methods.")
print("The variable __name__ tells me which context this file is running in.")
print("The value of __name__ is:", repr(__name__))
В этом файле определены три вызоваprint(). Первые два печатают несколько вводных фраз. Третийprint() сначала напечатает фразуThe value of __name__ is, а затем напечатает представление переменной__name__, используя встроенный Pythonrepr().
В Pythonrepr() отображает представление объекта для печати. В этом примереrepr() используется, чтобы подчеркнуть, что значение__name__ является строкой. Вы можете узнать больше оrepr() вPython documentation.
В этой статье вы увидите словаfile,module иscript. Практически между ними нет большой разницы. Тем не менее, есть небольшие различия в значении, которые подчеркивают цель фрагмента кода:
-
File: Обычно файл Python — это любой файл, содержащий код. Большинство файлов Python имеют расширение
.py. -
Script: Сценарий Python — это файл, который вы собираетесь запустить из командной строки для выполнения задачи.
-
Module: Модуль Python — это файл, который вы собираетесь импортировать из другого модуля или сценария, или из интерактивного интерпретатора. Вы можете узнать больше о модулях вPython documentation.
Выполнение из командной строки
При таком подходе вы хотите выполнить ваш скрипт Python из командной строки.
Когда вы выполняете скрипт, вы не сможете интерактивно определить код, который выполняет интерпретатор Python. Детали того, как вы можете запускать Python из командной строки, не так важны для целей этой статьи, но вы можете расширить поле ниже, чтобы узнать больше о различиях между командной строкой в Windows, Linux и macOS.
Теперь вы должны выполнить сценарийexecution_methods.py из командной строки, как показано ниже:
$ python3 execution_methods.py
This is my file to test Python's execution methods.
The variable __name__ tells me which context this file is running in.
The value of __name__ is: '__main__'
В этом примере вы можете видеть, что__name__ имеет значение'__main__', где символы кавычек (') говорят вам, что значение имеет строковый тип.
Помните, что в Python нет разницы между строками, определенными одинарными кавычками (') и двойными кавычками ("). Вы можете узнать больше об определении строк вBasic Data Types in Python.
Вы найдете идентичный вывод, если включитеshebang line в свой скрипт и выполните его напрямую (./execution_methods.py) или воспользуетесь магией%run в IPython или Jupyter Notebooks.
Вы также можете увидеть скрипты Python, выполняемые из пакетов, добавив аргумент-m к команде. Чаще всего вы увидите эту рекомендацию, когда используетеpip:python3 -m pip install package_name.
Во всех трех случаях__name__ имеет одно и то же значение: строка'__main__'.
Technical detail: В документации Python конкретно указано, когда__name__ будет иметь значение'__main__':
__name__модуля устанавливается равным'__main__'при чтении из стандартного ввода, сценария или из интерактивной подсказки. (https://docs.python.org/3/library/main.html [Источник])
__name__ хранится в глобальном пространстве имен модуля вместе с__doc__,__package__ и другими атрибутами. Вы можете прочитать больше об этих атрибутах вPython Data Model documentation и, особенно для модулей и пакетов, вPython Import documentation.
Импорт в модуль или интерактивный интерпретатор
Теперь давайте рассмотрим второй способ, которым интерпретатор Python выполнит ваш код: импорт. Когда вы разрабатываете модуль или скрипт, вы, скорее всего, захотите воспользоваться преимуществами модулей, которые уже созданы кем-то другим, что вы можете сделать с помощью ключевого словаimport.
Во время процесса импорта Python выполняет операторы, определенные в указанном модуле (но толькоfirst, когда вы импортируете модуль). Чтобы продемонстрировать результаты импорта файлаexecution_methods.py, запустите интерактивный интерпретатор Python, а затем импортируйте файлexecution_methods.py:
>>>
>>> import execution_methods
This is my file to test Python's execution methods.
The variable __name__ tells me which context this file is running in.
The value of __name__ is: 'execution_methods'
В этом выводе кода вы можете видеть, что интерпретатор Python выполняет три вызоваprint(). Первые две строки вывода точно такие же, как при запуске файла в виде сценария в командной строке, потому что ни в одной из первых двух строк нет переменных. Однако есть разница в выходе третьегоprint().
Когда интерпретатор Python импортирует код, значение__name__ устанавливается таким же, как имя импортируемого модуля. Вы можете увидеть это в третьей строке выше. __name__ имеет значение'execution_methods', которое является именем файла.py, из которого Python импортирует.
Обратите внимание, что если вы сноваimport модуль без выхода из Python, выход не будет.
Лучшие практики для основных функций Python
Теперь, когда вы можете увидеть различия в том, как Python обрабатывает свои различные режимы выполнения, полезно узнать некоторые рекомендации. Они будут применяться всякий раз, когда вы захотите написать код, который можно запустить как импорт скриптаand в другой модуль или интерактивный сеанс.
Вы узнаете о четырех передовых практиках, чтобы убедиться, что ваш код может служить двойной цели:
-
Поместите большую часть кода в функцию или класс.
-
Используйте
__name__для управления выполнением вашего кода. -
Создайте функцию с именем
main(), которая будет содержать код, который вы хотите запустить. -
Вызов других функций из
main().
Поместите большую часть кода в функцию или класс
Помните, что интерпретатор Python выполняет весь код в модуле при импорте модуля. Иногда код, который вы пишете, будет иметь побочные эффекты, которые вы хотите, чтобы пользователь контролировал, такие как:
-
Выполнение вычисления, которое занимает много времени
-
Запись в файл на диске
-
Печать информации, которая загромождает терминал пользователя
В этих случаях вы хотите, чтобы пользователь контролировал запуск выполнения этого кода вместо того, чтобы позволить интерпретатору Python выполнять код при импорте вашего модуля.
Поэтому лучше всегоinclude most code inside a function or a class. Это связано с тем, что, когда интерпретатор Python встречает ключевые словаdef илиclass, он сохраняет эти определения только для дальнейшего использования и фактически не выполняет их, пока вы ему не скажете.
Сохраните приведенный ниже код в файл с именемbest_practices.py, чтобы продемонстрировать эту идею:
1 from time import sleep
2
3 print("This is my file to demonstrate best practices.")
4
5 def process_data(data):
6 print("Beginning data processing...")
7 modified_data = data + " that has been modified"
8 sleep(3)
9 print("Data processing finished.")
10 return modified_data
В этом коде вы сначала импортируетеsleep() изtime module.
sleep() приостанавливает интерпретатор на количество секунд, которое вы указываете в качестве аргумента, и создает функцию, выполнение которой для этого примера занимает много времени. Затем вы используетеprint(), чтобы напечатать предложение, описывающее цель этого кода.
Затем вы определяете функцию с именемprocess_data(), которая выполняет пять функций:
-
Выводит некоторый вывод, чтобы сообщить пользователю, что обработка данных начинается
-
Изменяет входные данные
-
Приостанавливает выполнение на три секунды, используя
sleep() -
Выводит некоторый вывод, чтобы сообщить пользователю, что обработка завершена
-
Возвращает измененные данные
Запустите файл лучших практик в командной строке
Теперь, что произойдет, когда вы запустите этот файл как скрипт в командной строке?
Интерпретатор Python выполнит строкиfrom time import sleep иprint(), которые находятся вне определения функции, затем он создаст определение функции с именемprocess_data(). Затем сценарий завершится без каких-либо дополнительных действий, поскольку в сценарии нет кода, выполняющегоprocess_data().
Блок кода ниже показывает результат запуска этого файла в виде скрипта:
$ python3 best_practices.py
This is my file to demonstrate best practices.
Результат, который мы видим здесь, является результатом первогоprint(). Обратите внимание, что импорт изtime и определениеprocess_data() не приводят к выходным данным. В частности, выходы вызововprint(), которые находятся внутри определенияprocess_data(), не печатаются!
Импортируйте файл рекомендаций в другой модуль или интерактивный интерпретатор
Когда вы импортируете этот файл в интерактивном сеансе (или другом модуле), интерпретатор Python будет выполнять те же действия, что и при запуске файла в виде скрипта.
После того, как интерпретатор Python импортирует файл, вы можете использовать любые переменные, классы или функции, определенные в импортированном вами модуле. Чтобы продемонстрировать это, мы будем использовать интерактивный интерпретатор Python. Запустите интерактивный интерпретатор и введитеimport best_practices:
>>>
>>> import best_practices
This is my file to demonstrate best practices.
Единственный результат импорта файлаbest_practices.py — это первый вызовprint(), определенный внеprocess_data(). Импорт изtime и определениеprocess_data() не приводят к выходным данным, как и при выполнении кода из командной строки.
Используйтеif __name__ == "main" для управления выполнением вашего кода
Что, если вы хотите, чтобыprocess_data() выполнялся, когда вы запускаете скрипт из командной строки, но не когда интерпретатор Python импортирует файл?
Вы можетеuse the if __name__ == "main" idiom to determine the execution context и условно запуститьprocess_data() только тогда, когда__name__ равно"__main__". Добавьте приведенный ниже код в конец файлаbest_practices.py:
11 if __name__ == "__main__":
12 data = "My data read from the Web"
13 print(data)
14 modified_data = process_data(data)
15 print(modified_data)
В этом коде вы добавили условный оператор, который проверяет значение__name__. Это условие будет оцениваться какTrue, когда__name__ равно строке"__main__". Помните, что специальное значение"__main__" для переменной__name__ означает, что интерпретатор Python выполняет ваш сценарий, а не импортирует его.
Внутри условного блока вы добавили четыре строки кода (строки 12, 13, 14 и 15):
-
Lines 12 and 13: Вы создаете переменную
data, в которой хранятся данные, полученные из Интернета, и распечатываете их. -
Line 14: Вы обрабатываете данные.
-
Line 15: Вы печатаете измененные данные.
Теперь запустите сценарийbest_practices.py из командной строки, чтобы увидеть, как изменится вывод:
$ python3 best_practices.py
This is my file to demonstrate best practices.
My data read from the Web
Beginning data processing...
Data processing finished.
My data read from the Web that has been modified
Во-первых, выходные данные показывают результат вызоваprint() внеprocess_data().
После этого печатается значениеdata. Это произошло потому, что переменная__name__ имеет значение"__main__", когда интерпретатор Python выполняет файл как сценарий, поэтому условный оператор оценивается какTrue.
Затем ваш скрипт вызвалprocess_data() и передалdata для модификации. Когдаprocess_data() выполняется, он выводит некоторые сообщения о состоянии. Наконец, печатается значениеmodified_data.
Теперь вы должны проверить, что происходит при импорте файлаbest_practices.py из интерактивного интерпретатора (или другого модуля). Пример ниже демонстрирует эту ситуацию:
>>>
>>> import best_practices
This is my file to demonstrate best practices.
Обратите внимание, что вы получаете то же поведение, что и до добавления условного выражения в конец файла! Это связано с тем, что переменная__name__ имела значение"best_practices", поэтому Python не выполнял код внутри блока, включаяprocess_data(), потому что условный оператор оценивается какFalse.
Создайте функцию с именем main (), которая будет содержать код, который вы хотите запустить
Теперь вы можете написать код Python, который можно запускать из командной строки в виде скрипта и импортировать без нежелательных побочных эффектов. Далее вы узнаете, как написать свой код, чтобы другие программисты Python могли легко понять, что вы имеете в виду.
Многие языки, такие как C, C +, Java и некоторые другие, определяют специальную функцию, которая должна вызываться `+ main ()`, которую операционная система автоматически вызывает при выполнении скомпилированной программы. Эту функцию часто называютentry point, потому что именно здесь выполнение входит в программу.
В отличие от этого, Python не имеет специальной функции, которая служит точкой входа в скрипт. На самом деле вы можете присвоить функции точки входа в скрипте Python любое имя, какое захотите!
Хотя Python не придает никакого значения функции с именемmain(), в любом случае лучше всего использоватьname the entry point function main(). Таким образом, любые другие программисты, которые читают ваш сценарий, сразу же узнают, что эта функция является отправной точкой кода, который выполняет основную задачу сценария.
Кроме того,main() должен содержать любой код, который вы хотите запустить, когда интерпретатор Python выполняет файл. Это лучше, чем помещать код непосредственно в условный блок, потому что пользователь может повторно использовать main (), если они импортируют ваш модуль.
Измените файлbest_practices.py так, чтобы он выглядел как код ниже:
1 from time import sleep
2
3 print("This is my file to demonstrate best practices.")
4
5 def process_data(data):
6 print("Beginning data processing...")
7 modified_data = data + " that has been modified"
8 sleep(3)
9 print("Data processing finished.")
10 return modified_data
11
12 def main():
13 data = "My data read from the Web"
14 print(data)
15 modified_data = process_data(data)
16 print(modified_data)
17
18 if __name__ == "__main__":
19 main()
В этом примере вы добавили определениеmain(), которое включает код, который ранее находился внутри условного блока. Затем вы изменили условный блок так, чтобы он выполнялmain(). Если вы запустите этот код как скрипт или импортируете его, вы получите тот же вывод, что и в предыдущем разделе.
Вызов других функций из main ()
Другая распространенная практика в Python — этоhave main() execute other functions, а не включение кода выполнения задачи вmain(). Это особенно полезно, когда вы можете составить общую задачу из нескольких небольших подзадач, которые могут выполняться независимо.
Например, у вас может быть скрипт, который выполняет следующие действия:
-
Считывает файл данных из источника, который может быть базой данных, файлом на диске или веб-API
-
Обрабатывает данные
-
Записывает обработанные данные в другое место
Если вы реализуете каждую из этих подзадач в отдельных функциях, вам (или другому пользователю) будет легко повторно использовать несколько шагов и игнорировать те, которые вам не нужны. Затем вы можете создать рабочий процесс по умолчанию вmain(), и у вас будет лучшее из обоих миров.
Применять ли эту практику к вашему коду — это решение с вашей стороны. Разделение работы на несколько функций облегчает повторное использование, но увеличивает трудность для другого человека, пытающегося интерпретировать ваш код, потому что он должен выполнить несколько переходов в потоке программы.
Измените файлbest_practices.py так, чтобы он выглядел как код ниже:
1 from time import sleep
2
3 print("This is my file to demonstrate best practices.")
4
5 def process_data(data):
6 print("Beginning data processing...")
7 modified_data = data + " that has been modified"
8 sleep(3)
9 print("Data processing finished.")
10 return modified_data
11
12 def read_data_from_web():
13 print("Reading data from the Web")
14 data = "Data from the web"
15 return data
16
17 def write_data_to_database(data):
18 print("Writing data to a database")
19 print(data)
20
21 def main():
22 data = read_data_from_web()
23 modified_data = process_data(data)
24 write_data_to_database(modified_data)
25
26 if __name__ == "__main__":
27 main()
В этом примере кода первые 10 строк файла имеют то же содержимое, что и раньше. Второе определение функции в строке 12 создает и возвращает некоторые примерные данные, а третье определение функции в строке 17 имитирует запись измененных данных в базу данных.
В строке 21 определяетсяmain(). В этом примере вы изменилиmain() так, чтобы он по очереди вызывал функции чтения, обработки и записи данных.
Во-первых,data создается изread_data_from_web(). Этотdata передается вprocess_data(), который возвращаетmodified_data. Наконец,modified_data передается вwrite_data_to_database().
Последние две строки сценария — это условный блок, который проверяет__name__ и запускаетmain(), если операторif равенTrue.
Теперь вы можете запустить весь конвейер обработки из командной строки, как показано ниже:
$ python3 best_practices.py
This is my file to demonstrate best practices.
Reading data from the Web
Beginning data processing...
Data processing finished.
Writing processed data to a database
Data from the web that has been modified
На выходе этого выполнения вы можете видеть, что интерпретатор Python выполнилmain(), который выполнилread_data_from_web(),process_data() иwrite_data_to_database(). Однако вы также можете импортировать файлbest_practices.py и повторно использоватьprocess_data() для другого источника входных данных, как показано ниже:
>>>
>>> import best_practices as bp
This is my file to demonstrate best practices.
>>> data = "Data from a file"
>>> modified_data = bp.process_data(data)
Beginning data processing...
Data processing finished.
>>> bp.write_data_to_database(modified_data)
Writing processed data to a database
Data from a file that has been modified
В этом примере вы импортировалиbest_practices и сократили имя доbp для этого кода.
В процессе импорта интерпретатор Python выполнил все строки кода в файлеbest_practices.py, поэтому в выходных данных отображается строка, объясняющая назначение файла.
Затем вы сохранили данные из файла вdata вместо чтения данных из Интернета. Затем вы повторно использовалиprocess_data()+`and `+write_data_to_database() из файлаbest_practices.py. В этом случае вы воспользовались преимуществом повторного использования вашего кода вместо определения всей логики вmain().
Резюме рекомендаций по основным функциям Python
Вот четыре ключевых передовых метода использованияmain() в Python, которые вы только что видели:
-
Поместите код, выполнение которого занимает много времени или имеет другие эффекты на компьютере, в функцию или класс, чтобы вы могли точно контролировать, когда этот код выполняется.
-
Используйте разные значения
__name__, чтобы определить контекст и изменить поведение вашего кода с помощью условного оператора. -
Вы должны назвать свою точку входа function
main(), чтобы сообщить о назначении функции, даже если Python не придает особого значения функции с именемmain(). -
Если вы хотите повторно использовать функциональные возможности вашего кода, определите логику в функциях вне
main()и вызовите эти функции в пределахmain().
Заключение
Поздравляем! Теперь вы знаете, как создавать функции Pythonmain().
Вы узнали следующее:
-
Знание значения переменной
__name__важно для написания кода, который служит двойной цели: исполняемый скрипт и импортируемый модуль. -
__name__принимает разные значения в зависимости от того, как вы выполняли свой файл Python.__name__будет равно:-
"__main__", когда файл выполняется из командной строки, или с помощьюpython -m(для выполнения файла__main__.pyпакета) -
Имя модуля, если модуль импортируется
-
-
Программисты Python разработали ряд хороших методов, которые можно использовать, когда вы хотите разработать повторно используемый код.
Теперь вы готовы написать отличный код функции Pythonmain()!
Директор компании Seoquick автор многочисленных статей и публикаций. Сфера интересов: контекстная реклама, продвижение, поисковая оптимизация и OutReach. Ведет YouTube-канал, снимает видео как для новичков, так и для опытных SЕО- специалистов.
Начинающий разработчик на Python, помимо синтаксиса и основных правил использования операторов этого языка, должен уметь запускать код на исполнение. Ведь только так можно понять, работает ли написанный вами скрипт, или в нем содержатся ошибки. Рассмотрим подробнее, как можно запустить скрипты в терминале операционной системы, в интегрированной среде разработки или просто из интерфейса ОС. Это позволит вам выбрать подходящий вариант и повысить эффективность своей работы.
Интерпретатор Python
Рассматриваемый язык программирования является одним из самых прогрессивных на текущий момент. Он позволяет быстро и эффективно решать задачи в самых разных областях. Однако под термином Python понимают также интерпретатор, то есть программу на компьютере, которая позволяет запускать на исполнение написанные скрипты. Она представляет собой дополнительный программный слой между аппаратным обеспечением ПК и кодом.
Существует несколько интерпретаторов:
- написанные на языке программирования С;
- написанные на языке программирования Java;
- написанные на языке Python;
- программы, реализованные в среде .NET.
Выбор конкретного варианта для конечного пользователя значения не имеет. Независимо от вида программы, написанный код будет выполняться именно так, как предусмотрено правилами этого языка.
Запуск возможен двумя способами: как готовая к использованию программная последовательность (скрипт или модуль) или как отдельные куски кода, которые вводятся прямо в окно программы.
Интерактивный запуск кода
Для тестирования отдельных команд можно использовать интерпретатор в режиме интерактивного сеанса. Для этого необходимо открыть командную строку операционной системы и ввести команду, которая запускает интерпретатор.
Для ОС Linux это будет выглядеть следующим образом:
$ python3
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Теперь можно вводить команды, которые будут выполняться сразу после этого. Минус подобного подхода в том, что вся введенная последовательность не сохраняется после закрытия текущей сессии.
Интерактивное исполнение кода необходимо для того, чтобы немедленно протестировать фрагмент написанного кода. Кроме того, его можно использовать в процессе обучения для проверки действий тех или иных операторов «на лету». Этот способ интерпретации команд позволяет попробовать нужные вам функции языка, не прибегая к написанию отдельных скриптов для этого.
Выйти из интерактивного режима можно с помощью команды quit(), или просто закрыв окно терминала в Windows.
Для открытия терминала или командной строки перед запуском самого интерпретатора необходимо:
- В Windows нажать комбинацию клавиш «Флажок» + «R», после чего ввести команду cmd и нажать на кнопку «ОК» в диалоговом окне.
- В Linux или других подобных операционных системах доступ к командной строке предоставляется с помощью дополнительной программы. Можно использовать xterm или Konsole.
- В macOS для получения доступа к терминалу необходимо выбрать меню «Приложения», после чего перейти в раздел «Утилиты» и кликнуть на элементе «Терминал».
Как работает интерпретатор Python для скриптов
Запуск на исполнение написанных скриптов или модулей производится в пакетном режиме. И выполняется по сложной схеме, которая состоит из следующих этапов:
- Последовательная обработка всех операторов, которые записаны в скрипте.
- Компиляция исходного хода в промежуточный формат. Интерпретатор создает байт-код, который представляет собой язык программирования низкого уровня, независимый от платформы и операционной системы. Байт-код необходим для оптимизации процесса выполнения скрипта.
- Исполнение полученного кода. На этом этапе вступает в действие виртуальная машина Python (PVM), которая циклично перебирает каждый оператор из скрипта и запускает его на исполнение. Как будто вы вводите каждую команду последовательно в интерактивном интерпретаторе.
Запуск скриптов в командной строке
В интерактивном режиме, который обсуждался выше, можно записывать и выполнять любое количество строк кода. Но после закрытия окна терминала они не сохраняются. Поэтому реальные программы на Python пишутся в виде скриптов и представляют собой обычные текстовые файлы. Чтобы избежать путаницы при их хранении, им присваиваются расширения .py или .piw.
Создавать текстовый файл можно с помощью любого редактора, в том числе Notepad. Однако лучше использовать более продвинутые решения, например Sublime Text. Для примера возьмем наиболее простой скрипт, с которого начинается знакомство с любым языком программирования.
#!/usr/bin/env python3
print('Hello World!')
Файл можно сохранить в вашем рабочем каталоге с любым именем и расширением .py.
Чтобы запустить скрипт на исполнение, нужно использовать интерпретатор языка программирования и в качестве дополнительного параметра указать имя созданного вами файла.
$ python3 hello.py
Hello World!
В приведенном выше примере файл был назван «hello.py». После ввода команды нужно нажать клавишу «Ввод», и на экране появится результат работы скрипта. То есть надпись «Привет, Мир» или классическое английское «Hello World»!
Если файл с программой сохранен не в каталоге с интерпретатором, нужно указывать путь к нему.
Переназначение устройства вывода информации
При исполнении программного кода на Python иногда необходимо сохранять результаты, которые отображает на экране программа. Они в дальнейшем анализируются для поиска ошибок или других целей. В этом случае скрипт необходимо запускать следующей командой:
$ python3 hello.py > output.txt
По результатам работы скрипта создается файл с именем output.txt, в который сохраняется все то, что должно было появиться на экране во время работы в программе. Это стандартный синтаксис, предусмотренный операционной системой.
Если файла с заданным именем не существует, ОС создает его автоматически. Если существует – данные в нем перезаписываются без сохранения предыдущих. В случае, когда есть необходимость в добавлении данных в конец текстового файла, вместо одного значка > необходимо указать два >>.
Прокачать навык программирования на Python и найти работу Junior Python разработчика помогут наши менторы
Выбрать ментора
Запуск из командной строки без интерпретатора
В последних версиях операционной системы Windows добавлена возможность запускать скрипты на Python без ввода в командной строке названия программы-интерпретатора. То есть необходимо просто написать название файла с расширением.
C:devspace> hello.py
Hello World!
Обусловлено это тем, что при клике на файле или запуске его из командной строки операционная система автоматически ищет связанное приложение и запускает его. Точно так же вы открываете файлы Word, просто кликнув на них курсором мыши.
В Unix таким образом тоже можно запускать скрипты. Однако для этого в первую строку текстового файла с командами необходимо добавить текст #!/Usr/bin/env python. Он указывает на программу, с помощью которой производится запуск. А интерпретатор языка программирования расценивает строку как комментарий и пропускает её.
Запуск скриптов из интерактивного режима
Находясь в интерактивном режиме (описан в первом разделе), пользователь может загрузить файл с написанной ранее последовательностью команд и запустить его на исполнение. Такой способ можно применять, когда модуль содержит вызовы функций, методов или других операторов, генерирующих текст на экране. В противном случае видимых результатов работы программы не будет.
Запустить скрипт из интерактивного режима можно командой:
>>> import hello
Hello World!
Обратите внимание, что эта команда срабатывает один раз за интерактивный сеанс. Поэтому, если внести изменения в файл со скриптом и перезапустить его этой командой, ничего не произойдет.
Заключение
Теперь вы знаете, что команды и скрипты Python можно запускать разными способами и в разных режимах. Это позволит вам выбрать нужный вариант для решения конкретной задачи, увеличить скорость своей работы, сделать ее продуктивной и гибкой.














