Марк Лутц - Изучаем Python, Четвертое издание (1184811), страница 23
Текст из файла (страница 23)
Чтобы воспользоваться операцией копирования и вставки, вы должны исключить из копирования строкуприглашения к вводу, результаты, которые программа выводит в процессе выполнения, и так далее – далеко не самая современная методология разработкипрограммного обеспечения!Чтобы хранить программы длительное время, необходимо сохранять программный код в файлах, которые обычно называются модулями. Модули –это простые текстовые файлы, содержащие инструкции на языке Python.Как только такой файл будет создан, вы можете предложить интерпретаторуPython выполнить инструкции в нем столько раз, сколько пожелаете.
Такойфайл можно запустить на выполнение разными способами – из команднойстроки системы, щелчком на ярлыке файла, из пользовательского интерфейса IDLE и другими способами. Независимо от выбранного вами способа интерпретатор Python будет выполнять весь программный код в модуле от начала доконца всякий раз, когда вы будете его запускать.Терминология в этой области может несколько изменяться. Например, файлымодулей часто называются программами на языке Python, где под программой понимается последовательность заранее написанных инструкций, сохраненных в файле для обеспечения возможности многократного использования.Файлы модулей, которые запускаются на выполнение непосредственно, иногданазывают сценариями – этим неофициальным термином обозначаются файлыпрограмм верхнего уровня.
Термин «модуль» зарезервирован для обозначенияфайлов, которые могут импортироваться другими файлами. (Подробнее о программах «верхнего уровня» и об импорте будет говориться чуть ниже.)Как бы вы ни называли их, в следующих нескольких разделах исследуютсяспособы запуска программного кода, который был сохранен в файлах модулей.В этом разделе вы узнаете, как запускать файлы наиболее типичным способом:перечислением их имен в команде python при запуске из системной команднойстроки. Кому-то это может показаться примитивным, но для большинства программистов для разработки программ вполне достаточно окна терминала с командной оболочкой и окна текстового редактора.Системная командная строка и файлы85Первый сценарийВ качестве первого упражнения откройте привычный для вас текстовый редактор (например, vi, Notepad�������������������������������������������������������������������������������������������������или редактор IDLE) и сохраните следующие инструкции в файле с именем script1.py:# Первый сценарий наimport sysprint(sys.platform)print(2 ** 100)x = ‘Spam!’print(x * 8)языке Python# Загружает библиотечный модуль# Возводит число 2 в степень 100# Дублирует строкуЭто наш первый официальный сценарий на языке Python (если не считатьдвухстрочный сценарий из главы 2).
Пока не нужно вникать в синтаксис программного кода в этом файле, тем не менее, в качестве краткого описания скажу, что этот файл:•• Импортирует модуль Python (библиотеку дополнительных инструментов),чтобы позднее получить название платформы•• Трижды вызывает функцию print, чтобы отобразить результаты•• Использует переменную с именем x, которая создается в момент, когда ейприсваивается значение в виде строкового объекта•• Выполняет некоторые операции над объектами, с которыми мы познакомимся в следующей главеИмя sys.platform – это просто строковая переменная, содержимое которойидентифицирует тип компьютера, на котором выполняется сценарий. Эта переменная находится в стандартном модуле с именем sys, который необходимозагрузить с помощью инструкции import (подробнее об импортировании мы поговорим позже).Для разнообразия я также добавил комментарии – текст, следующий за символом #.
Комментарии могут занимать отдельную строку или добавлятьсяв строку с программным кодом, правее его. Текст, следующий за символом #,интерпретатором просто игнорируется, как комментарий, добавленный длячеловека, и не считается частью инструкции. Если вы копируете этот пример,чтобы опробовать его, можете смело игнорировать комментарии. В этой книгея использовал несколько иной стиль оформления комментариев, чтобы обеспечить их визуальное отличие, но в ваших программах они будут выглядеть какобычный текст.Повторюсь еще раз, не старайтесь пока вникнуть в синтаксис программногокода в этом файле – с ним мы познакомимся позднее. Главное здесь то, что программный код вводится в текстовый файл, а не в интерактивной команднойоболочке интерпретатора Python.
Итак, вы создали полноценный сценарий наязыке Python.Обратите внимание, что файл модуля называется script1.py. Так как он является файлом верхнего уровня, его точно так же можно было бы назвать простоscript, но имена файлов с программным кодом, которые предполагается импортировать из других файлов, должны оканчиваться расширением .py. Обимпортировании рассказывается ниже, в этой же главе. Позднее вам можетпотребоваться импортировать тот или иной файл, поэтому всегда желательно86Глава 3. Как пользователь запускает программыиспользовать расширение .py в именах файлов с программным кодом на языкеPython. Кроме того, некоторые текстовые редакторы определяют принадлежность файлов по расширению .py – если расширение отсутствует, вы можетелишиться таких функциональных возможностей редактора, как подсветкасинтаксиса и автоматическое оформление отступов.Запуск файлов из командной строкиСохранив этот текстовый файл, вы сможете предложить интерпретаторуPython выполнить его, указав полное имя файла в качестве первого аргументакоманды python, введя следующую строку в системной командной строке:% python script1.pywin321267650600228229401496703205376Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!И в этом случае также вы должны использовать командную оболочку, которая предоставляется вашей операционной системой – в окне Командная строка(Command Prompt) в Windows, в xterm или в подобных им программах.
Не забывайте заменять слово «python» на полный путь к исполняемому файлу интерпретатора, если переменная окружения PATH у вас не настроена.Если все было сделано правильно, эта команда запустит интерпретатор ���Python, который в свою очередь последовательно, строку за строкой, выполнитинструкции в файле, и вы увидите на экране результаты выполнения трех инструкций print – название платформы, результат возведения числа 2 в степень100 и результат многократного дублирования строки, который мы уже виделивыше (о двух последних операциях более подробно рассказывается в главе 4).Если что-то пошло не так, на экране появится сообщение об ошибке – проверьте еще раз, не было ли допущено ошибок при вводе программного кода в файли повторите попытку. О некоторых способах отладки рассказывается ниже, воврезке «Отладка программ на языке Python» на стр.
25, но на данном этапелучше всего будет просто механически скопировать пример.Поскольку в данной ситуации для запуска программ на языке Python используется командная оболочка, можно применять любые синтаксические конструкции, допускаемые командной оболочкой. Например, можно перенаправить вывод сценария Python в файл, чтобы детально исследовать полученныерезультаты позднее, как показано ниже:% python script1.py > saveit.txtВ этом случае три строки, которые были показаны в предыдущем примере запуска сценария, не будут выводиться на экран, а будут записаны в файл saveit.txt. Это широко известная возможность перенаправления потоков – она может использоваться как для вывода текста, так и для ввода.
Она присутствуетв ������������������������������������������������������������������������Windows�����������������������������������������������������������������и в UNIX-подобных системах. Она мало связана с Python (интерпретатор Python просто поддерживает ее), поэтому здесь мы не будем углублятьсяв подробности работы механизма перенаправления.Если вы пользуетесь операционной системой Windows�����������������������������������������������������, этот пример будет работать точно так же, хотя сама командная строка будет выглядеть несколькоиначе:Системная командная строка и файлы87C:\Python30> python script1.pywin321267650600228229401496703205376Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!Если у вас переменная окружения PATH не настроена и не был выполнен переходв каталог интерпретатора, вам необходимо вводить полный путь к исполняемому файлу интерпретатора Python:D:\temp> C:\python30\python script1.pywin321267650600228229401496703205376Spam!Spam!Spam!Spam!Spam!Spam!Spam!Spam!В новейших версиях Windows вы можете просто вводить имя файла сценариянезависимо от того, в каком каталоге вы находитесь, потому что новейшиеверсии системы Windows отыскивают программы, необходимые для запускафайлов, с помощью реестра Windows, и вам не требуется явно указывать еев командной строке.
Например, в современных версиях Windows предыдущуюкоманду можно упростить до:D:\temp> script1.pyНаконец, не нужно забывать указывать полный путь к файлу сценария, еслион находится в каталоге, отличном от того, в котором вы работаете. Например,следующая команда будет работать в каталоге D:\other в предположении, чтопуть к команде python включен в переменную окружения PATH, при этом онадолжна запустить сценарий, расположенный в некотором другом каталоге:D:\other> python c:\code\otherscript.pyЕсли переменная окружения PATH не включает путь к каталогу с исполняемымфайлом интерпретатора ����������������������������������������������������Python����������������������������������������������и при этом файл сценария не находится в текущем рабочем каталоге, тогда необходимо будет указать полный путь как к исполняемому файлу интерпретатора, так и к файлу сценария:D:\other> C:\Python30\python c:\code\otherscript.pyИспользование системной командной строки и файловЗапуск файлов программ из командной строки системы является достаточнопростой задачей, особенно если у вас уже есть опыт работы с командной строкой.