Язык программирования Python - [15]

Шрифт
Интервал

(в файл можно писать) и >os.X_OK (файл можно исполнять, каталог можно просматривать).
>chdir(path)Делает >path текущим рабочим каталогом.
>getcwd()Текущий рабочий каталог.
>chmod(path, mode)Устанавливает режим доступа к >path в значение >mode. Режим доступа можно получить, скомбинировав флаги (см. ниже). Следует заметить, что >chmod() не дополняет действующий режим, а устанавливает его заново.
>listdir(dir)Возвращает список файлов в каталоге >dir. В список не входят специальные значения >"." и >"..".
>mkdir(path[, mode])Создает каталог >path. По умолчанию режим >mode равен >0777, то есть: >S_IRWXU|S_IRWXG|S_IRWXO, если пользоваться константами модуля >stat.
>makedirs(path[, mode])Аналог >mkdir(), создающий все необходимые каталоги, если они не существуют. Возбуждает исключение, когда последний каталог уже существует.
>remove(path), >unlink(path)Удаляет файл >path. Для удаления каталогов используются >rmdir() и >removedirs().
>rmdir(path)Удаляет пустой каталог >path.
>removedirs(path)Удаляет >path до первого непустого каталога. В случае если самый последний вложенный подкаталог в указанном пути — не пустой, возбуждается исключение >OSError.
>rename(src, dst)Переименовывает файл или каталог >src в >dst.
>renames(src, dst)Аналог >rename(), создающий все необходимые каталоги для пути >dst и удаляющий пустые каталоги пути >src.
>stat(path)Возвращает информацию о >path в виде не менее чем десятиэлементного кортежа. Для доступа к элементам кортежа можно использовать константы из модуля >stat, например >stat.ST_MTIME (время последней модификации файла).
>utime(path, times)Устанавливает значения времен последней модификации (>mtime) и доступа к файлу (>atime). Если >times равен None, в качестве времен берется текущее время. В других случаях >times рассматривается как двухэлементный кортеж (>atime, >mtime). Для получения atime и mtime некоторого файла можно использовать >stat() совместно с константами модуля >stat.

Для работы с процессами модуль os предлагает следующие функции (здесь упомянуты только некоторые, доступные как в Unix, так и в Windows):

>abort()Вызывает для текущего процесса сигнал >SIGABRT.
>system(cmd)Выполняет командную строку >cmd в отдельной оболочке, аналогично вызову >system библиотеки языка C. Возвращаемое значение зависит от используемой платформы.
>times()Возвращает кортеж из пяти элементов, содержащий время в секундах работы процесса, ОС (по обслуживанию процесса), дочерних процессов, ОС для дочерних процессов, а также время от фиксированного момента в прошлом (например, от момента запуска системы).
>getloadavg()Возвращает кортеж из трех значений, соответствующих занятости процессора за последние 1, 5 и 15 минут.
Модуль stat

В этом модуле описаны константы, которые можно использовать как индексы к кортежам, применяемым функциями >os.stat() и >os.chmod() (а также некоторыми другими). Их можно уточнить в документации по Python.

Модуль tempfile

Программе иногда требуется создать временный файл, который после выполнения некоторых действий больше не нужен. Для этих целей можно использовать функцию >TemporaryFile, которая возвращает файловый объект, готовый к записи и чтению.

В следующем примере создается временный файл, куда записываются данные и затем читаются:

>import tempfile

>f = tempfile.TemporaryFile()

>f.write("0"*100)    # записывается сто символов 0

>f.seek(0)           # уст. указатель на начало файла

>print len(f.read()) # читается до конца файла и вычисляется длина

Как и следовало ожидать, в результате будет выведено 100. Временный файл будет удален, как только будут удалены все ссылки на его объект.

Обработка текстов

Модули этой категории будут подробно рассмотрены в отдельной лекции.

Многопоточные вычисления

Модули этой категории станут предметом рассмотрения отдельной лекции.

Хранение данных. Архивация

К этой категории отнесены модули, которые работают с внешними хранилищами данных.

Модуль pickle

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

Модуль >pickle позволяет сериализовывать объекты и сохранять их в строке или файле. Следующие объекты могут быть сериализованы:

• встроенные типы: >None, числа, строки (обычные и Unicode).

• списки, кортежи и словари, содержащие только сериализуемые объекты.

• функции, определенные на уровне модуля (сохраняется имя, но не реализация!).

• встроенные функции.

• классы, определенные на уровне модуля.

• объекты классов, >__dict__ или >__setstate__() которых являются сериализуемыми.

Типичный вариант использования модуля приведен ниже.

Сохранение:

>import pickle, time

>mydata = ("abc", 12, [1, 2, 3])

>output_file = open("mydata.dat", "w")

>p = pickle.Pickler(output_file)

>p.dump(mydata)

>output_file.close()

Восстановление:

>import pickle

>input_file = open("mydata.dat", "r")

>mydata = pickle.load(input_file)

>print mydata

>input_file.close()

Модуль shelve

Для хранения объектов в родном для Python формате можно применять полку (>shelve). По своему интерфейсу полка ничем не отличается от словаря. Следующий пример показывает, как использовать полку:


Рекомендуем почитать
Изучаем Java EE 7

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)


Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


Фундаментальные алгоритмы и структуры данных в Delphi

Книга "Фундаментальные алгоритмы и структуры данных в Delphi" представляет собой уникальное учебное и справочное пособие по наиболее распространенным алгоритмам манипулирования данными, которые зарекомендовали себя как надежные и проверенные многими поколениями программистов. По данным журнала "Delphi Informant" за 2002 год, эта книга была признана сообществом разработчиков прикладных приложений на Delphi как «самая лучшая книга по практическому применению всех версий Delphi».В книге подробно рассматриваются базовые понятия алгоритмов и основополагающие структуры данных, алгоритмы сортировки, поиска, хеширования, синтаксического разбора, сжатия данных, а также многие другие темы, тесно связанные с прикладным программированием.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.


Как пасти котов. Наставление для программистов, руководящих другими программистами

«Как пасти котов» – это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач.