Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 [ 131 ] 132 133 134 135 136 137 138 139 140 141 142 143 144 145

Следующие функции используют экземпляр класса FileInput, созданный и сохраненный функцией input() . При попытке использования этих функций без предварительного вызова input() или после вызова функции close() генерируется исключение RuntimeError. Текущим всегда считается файл, из которого была прочитана последняя строка.

filename()

Возвращает имя файла, для которого была прочитана последняя строка. До того, как прочитана первая строка (в том числе непосредственно после вызова функции nextfile() ), возвращает None. Для стандартного потока ввода возвращает <stdin>.

lineno()

Возвращает суммарный номер последней прочитанной строки. До того, как прочитана первая строка (в том числе непосредственно после вызова функции nextfile() ), возвращает 0 .

filelineno()

Возвращает номер последней прочитанной строки в текущем файле. До того, как прочитана первая строка (в том числе непосредственно после вызова функции nextfile() ), возвращает 0 .

isfirstline()

Возвращает 1 , если последняя прочитанная строка является первой в текущем файле, иначе возвращает 0.

isstdin()

Возвращает 1 , если последняя строка была прочитана со стандартного потока ввода (sys.stdin), иначе возвращает 0.

nextfile()

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

close()

Вызывает метод close() экземпляра, сохраненного функцией input() .

Следующий класс реализует чтение из нескольких файлов и может быть использован для определения производных классов:

FileInput ([files [, inplace [, backup]]])

Создает и возвращает объект, обеспечивающий чтение строк из нескольких файлов. Аргумент files должен быть списком имен файлов или строкой с именем файла. По умолчанию используется sys.argv[1:] или стандартный поток ввода, если список аргументов командной строки пуст. Имя - является специальным, для него используется поток sys.stdin.



30.1. fileinput - перебор строк из нескольких входных потоков 411

Если задан и является истиной аргумент inplace, файл переименовывается в резервную копию с именем, полученным добавлением суффикса backup (по умолчанию используется .bak) к исходному имени файла, стандартный поток вывода перенаправляется в исходный файл, и перебираются строки резервной копии. Таким образом, одновременно с чтением строк Вы можете безопасно изменять исходный файл, выводя в него информацию, например, инструкцией print. Резервная копия удаляется при закрытии выходного файла. Такое редактирование файла ("in-place filtering") невозможно при чтении из стандартного потока ввода.

Текущая реализация не позволяет работать с файловой системой MS-DOS, которая налагает сильные ограничения на имена файлов.

Экземпляры класса FileInput ведут себя аналогично последовательностям, но предоставляют доступ к элементам в определенном порядке (этого достаточно для использования в инструкции for), а также имеют следующие методы:

filename()

Возвращает имя файла, для которого была прочитана последняя строка. До того, как прочитана первая строка (в том числе непосредственно после вызова метода nextfile() ), возвращает None. Для стандартного потока ввода возвращает <stdin>.

lineno()

Возвращает суммарный номер последней прочитанной строки. До того, как прочитана первая строка (в том числе непосредственно после вызова метода nextfile()), возвращает 0.

filelineno()

Возвращает номер последней прочитанной строки в текущем файле. До того, как прочитана первая строка (в том числе непосредственно после вызова метода nextfile() ), возвращает 0 .

isfirstline()

Возвращает 1 , если последняя прочитанная строка является первой в текущем файле, иначе возвращает 0 .

isstdin()

Возвращает 1 , если последняя строка была прочитана со стандартного потока ввода (sys.stdin), иначе возвращает 0.

nextfile()

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

close()

"Закрывает" объект.

readline()

Считывает и возвращает следующую строку. Этот метод увеличивает счетчик строк



30.2 ConfigParser - чтение конфигурационных файлов

Этот модуль определяет класс ConfigParser, реализующий чтение и обработку простых конфигурационных файлов, аналогичных по структуре .ini-файлам в Windows.

Конфигурационный файл состоит из разделов, начинающихся с заголовка вида [раздел] и содержащий строки вида имя: значение. Длинные значения могут быть записаны в несколько строк в стиле RFC 822. Также допускается использование строк вида имя= значение . Обратите внимание, что начальные символы пропуска из значения удаляются. Значения могут содержать строки формата, ссылающиеся на другие значения в этом же разделе или разделе default (раздел значений по умолчанию):

foodir: %(dir)s/whatever dir=frob

В приведенном примере последовательность %(dir)s будет заменена значением dir (здесь оно равно frob ). Дополнительные значения по умолчанию могут быть указаны при инициализации и извлечении. Строки, начинающиеся с символа # или ; считаются комментариями и игнорируются.

ConfigParser ([defaults])

Возвращает объект, отвечающий за чтение конфигурационного файла. Отображение defaults определяет значения по умолчанию: ключи в нем должны быть строками, определяющие имена, значения могут содержать последовательности вида %(имя)s. Заметим, что имя name всегда имеет значение, равное имени

раздела.

MAX INTERPOLATION DEPTH

Определяет максимальную глубину рекурсии при раскрытии специальных последовательностей в значениях опций. Эту переменную следует считать доступной только для чтения: ее изменение не окажет никакого влияния на работу модуля.

Модуль также определяет следующую иерархию исключений:

Error

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

NoSectionError

Указанный раздел (атрибут section экземпляра исключения) не найден.

на единицу, поэтому вызов obj .readline() внутри цикла for line in obj приведет к ошибке (исключение RuntimeError).



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 [ 131 ] 132 133 134 135 136 137 138 139 140 141 142 143 144 145