Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Старое форматирование строк.Содержание книги
Поиск на нашем сайте Оператор % также может быть использован для форматирования строки. Он интерпретирует левый аргумент так же, как sprintf()-стиль формата строки, будучи примененным к правому аргументу, и возвращает строку результата из этой форматирующей операции. Например: >>> import math>>> print('The value of PI is approximately %5.3f.' % math.pi)The value of PI is approximately 3.142.Чтение и запись файлов. open() возвращает файловый и чаще всего используется с двумя аргументами: open(filename, mode). >>> f = open('workfile', 'w')Первый аргумент является строкой, содержащей имя файла. Второй аргумент - другая строка, содержащая несколько символов, описывающих способ, которым файл будет открыт. mode (режим - прим. пер.) может быть 'r', когда файл будет только читаться, 'w' - только для записи (существующий файл с таким же именем будет стерт), и 'a' открывает файл для добавления; любые данные, записанные в файл, автоматически добавляются в конец. 'r+' открывает файл как для чтения, так и записи. Аргумент mode опциональный; если он пропущен, будет назначен 'r'. Обычно файл открывается в текстовом режиме, это означает, что вы считываете из файла и записываете в файл строки. Файл кодируется в определенной кодировке. Если кодировка не указана, то по умолчанию она зависит от платформы. Добавление 'b' к режиму откроет файл в режиме binary (бинарном): теперь данные читаются и записываются из байтовых объектов. Этот режим следует использовать для всех файлов, которые не содержат текст. В текстовом режиме, по-умолчанию при чтении происходит преобразование окончания строки, которое зависит от платформы (\n в Unix, \r\n в Windows) в просто \n. При записи в текстовом режиме происходит обратная конвертация. Это происходящее за сценой преобразование файловых данные прекрасно для текстовых файлов, но будет портить бинарные данные как те, что в файлах JPEG или EXE. Будьте очень осторожны, используя бинарный режим, когда читаете и пишите такие файлы. Методы файловых объектов. Остальные примеры в этом разделе будут предполагать, что файловый объект под названием f уже был создан. Считывая содержимое файла, вызовите f.read(size), который читает некоторое количество данных и возвращает их как строку (в текстовом режиме) или объект байтов (в бинарном режиме). size - необязательный числовой аргумент. Когда size пропущен или отрицателен, все содержимое файла будет прочитано и возвращено; это ваша проблема, если файл окажется вдвое больше, чем память компьютера. По-другому, наибольший размер байтов читается и возвращается. Если был достигнут конец файла, f.read() вернет пустую строку. >>> f.read() 'This is the entire file.\n' >>> f.read() ''f.readline() читает одну строку (линию) из файла; символ новой строки (\n) остается в конце строки, и опускается только на последней строке файла, если файл не заканчивается новой строкой. Это делает возврат значения недвусмысленным; если f.readline() возвращает пустую строку, значит был достигнут конец файла, в то время как пустая линия представлена '\n', строкой, содержащей только одиночный символ новой линии. >>> f.readline() 'This is the first line of the file.\n' >>> f.readline() 'Second line of the file\n' >>> f.readline() ''Для чтения строк из файла, вы можете использовать цикл для обхода файлового объекта. Это эффективно для памяти, быстро и управляется простым кодом: >>> for line in f:... print(line, end= '')...This is the first line of the file.Second line of the fileЕсли вы хотите считать все строки файла в список, вы можете также использовать list(f) или f.readlines(). f.write(string) записывает содержимое string в файл, возвращает количество записанных символов. >>> f.write('This is a test\n')15Другие типы объектов нуждаются в конвертации - или в строку (в текстовом режиме) или объект байтов (в бинарном режиме) - перед своей записью: >>> value = ('the answer', 42)>>> s = str(value) # конвертирование кортежа в строку >>> f.write(s)18При двоичном режиме f.tell() возвращает целое число, указывающее для файлового объекта текущую позицию в файле, представленное как количество байтов от начала файла, и непрозрачный номер в текстовом режиме. Чтобы изменить позицию в файловом объекте, используйте f.seek(offset, from_what). Позиция вычисляется из добавления offset (смещение) к упомянутой точке; эта точка определяется аргументом from_what. Значение 0 from_what указывает на начало файла, 1 использует текущую позицию файла и 2 - конец файла как упомянутая точка. from_what может быть опущен, что приравнивает его к 0, использованию начала файла, как отправной точки. >>> f = open('workfile', 'rb+')>>> f.write(b'0123456789abcdef')16>>> f.seek(5) # Идем к 6-му байту в файле 5>>> f.read(1) b'5' >>> f.seek(-3, 2) # Идем к третьему байту с конца 13>>> f.read(1) b'd'В текстовых фалах (тех, что были открыты без 'b') seek разрешен только относительно начала файла (исключение - ищет самый конец файла с помощью seek(0, 2)), и единственными допустимыми значениями смещения являются те, которые возвращаются из f.tell(), или ноль. Любое другое значение смещения вызывает неопределенное поведение. Когда вы закончите с файлом, вызовите f.close(), чтобы закрыть его и освободить какие-либо системные ресурсы, занятые открытым файлом. После вызова f.close(), попытки использовать файловый объект будут приводить к автоматическому сбою. >>> f.close()>>> f.read()Traceback (most recent call last): File "<stdin>", line 1, in <module>ValueError: I/O operation on closed fileХорошая практика - использовать ключевое слово with, когда имеете дело с объектами-файлами. У этого есть преимущество, что файл правильно закроется после завершения его набора, даже если по пути возникнет исключение. Это также намного короче, чем писать эквивалентный try-finally блок: >>> with open('workfile', 'r') as f:... read_data = f.read()>>> f.closed TrueФайловые объекты имеют несколько дополнительных методов, таких как isstty() и trancate(), которые используются менее часто; обратитесь к справке по библиотеке для полного экскурса по объектам-файлам.
|
||
|
Последнее изменение этой страницы: 2021-07-18; просмотров: 106; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.006 с.) |