Лекция 17. Файлы. Строки. Форматный ввод-ввод. Сортировка в файлах (1152919), страница 3
Текст из файла (страница 3)
Использование метода для форматного вывода чисел различныхтипов:>>> '{0:5.2f}; {1:5.2f}'.format(3.144, -3.145)# вывод числа сплавающей точкой с округлением знаков после запятой, где 5 – числознаков под число, включая знаки и «запятую», а 2 – число знаков послезапятой (этот параметр приоритетный для формата)' 3.14; -3.15'>>> '{1:20d}; {0:3d}'.format(-34, 348) # вывод целого числа сфиксированной длиной поля под число, где 5 – число знаков под число,если в числе меньше знаков, будут вставлены пробелы'348; -34 '>>> "int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}".format(42) # вывододного и того же аргумента в различных системах счисления (десятичная,16-ричная, 8-ричная, двоичная)'int: 42; hex: 2a; oct: 52; bin: 101010'Поле "тип" может принимать следующие значения:ТипЗначение'd'Десятичное число.'o'Число в восьмеричной системе счисления.'x'Число в шестнадцатеричной системе счисления (буквы внижнем регистре).16Воробьева И.А.
«Информатика. Язык Питон»'e'Число с плавающей точкой с экспонентой (экспонента внижнем регистре).'f'Число с плавающей точкой (обычный формат).'g'Число с плавающей точкой. с экспонентой (экспонента внижнем регистре), если она меньше, чем -4 или точности,иначе обычный формат.'c'Символ (строка из одного символа или число - код символа).'s'Строка.'%'Число умножается на 100, отображается число с плавающейточкой, а за ним знак %.5.
Метод также позволяет выравнивать строки (по левому/правомукраю, по центру), управлять шириной полей и вставлять различныешаблоны символов.12.4. Работа с двоичными файлами в PythonИзучение дополнительных функций работы с двоичными файламине входит в наш курс, однако, для интересующихся, в приложении 1.2.приведен пример кода, который описывает работу с удобным модулемpickle. Этот модуль позволяет очень легко записывать в двоичные файлыи считывать из них сложные объекты смешанных пользовательских типов,объединенные с помощью конструкции class в Python.Литература:[1]. Академия Microsoft: Базы данных.
НОУ ИНТУИТhttp://www.intuit.ru/studies/courses/508/364/lecture/8655?page=117Воробьева И.А. «Информатика. Язык Питон»Приложение 1.1. Таблицы кодировки символов18Воробьева И.А. «Информатика. Язык Питон»Таблица 3. Кодовая страница ASCII-DOS (частично)А - - - - - - 128Б - - - - - - 129В - - - - - - 130Г - - - - - - 131Д - - - - - - 132Е - - - - - - 133Ж - - - - - - 134З - - - - - - 135И - - - - - - 136Й - - - - - - 137K - - - - - - 138Л - - - - - - 139М - - - - - - 140H - - - - - - 141О - - - - - - 142П - - - - - - 143Р - - - - - - 144С - - - - - - 145Т - - - - - - 146У - - - - - - 147Ф - - - - - - 148Х - - - - - - 149Ц - - - - - - 150Ч - - - - - - 151Ш - - - - - - 152Щ - - - - - - 153Ъ - - - - - - 154Ы - - - - - - 155Ь - - - - - - 156Э - - - - - - 157Ю - - - - - - 158Я - - - - - - 159808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F1000000010000001100000101000001110000100100001011000011010000111100010001000100110001010100010111000110010001101100011101000111110010000100100011001001010010011100101001001010110010110100101111001100010011001100110101001101110011100100111011001111010011111абвгдежзийклмноп---------------------------------------------------------------------------------160161162163164165166167168169170171172173174175A0A1A2A3A4A5A6A7A8A9AAABACADAEAF10100000101000011010001010100011101001001010010110100110101001111010100010101001101010101010101110101100101011011010111010101111рстуфхцчшщъыьэюя---------------------------------------------------------------------------------224225226227228229230231232233234235236237238239E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF11100000111000011110001011100011111001001110010111100110111001111110100011101001111010101110101111101100111011011110111011101111Приложение 1.2.
Пример использования модуля Pickle для чтения изаписи в файл собственных структур данныхPython предоставляет стандартный модуль с именем pickle, припомощи которого можно сохранять любой объект Python в файле, а затем извлекать его обратно. Рассмотрим сразу пример с созданием собственного типа данных и затем массива из объектов собственного типа.import pickleN = 10 # число объектов типа meclass me: # собственный тип данных состоит из полей символьного типа,# вещественного типа и целого типа данныхdef __init__(self):self.a = 'Привет'self.b = 45.0self.c = -6719Воробьева И.А. «Информатика. Язык Питон»MAS = [ me() for i in range(N) ] # выделим место под массив из N объектов типа menamef = 'SafeMe.dat' # имя файла, в котором будем сохранять сразу массив# объектов типа mefd = open(namef, "wb") # открываем бинарный файл на записьpickle.dump(MAS, fd) # метод dump() записывает в файл указанный объект –# это «массив объектов типа me»fd.close()# изменим в массиве первый объетMAS[0].a = 'ПРИВЕТ'MAS[0].b = -0.33MAS[0].c = 100print(MAS[0].a, MAS[0].b, MAS[0].c)del MAS # уничтожаем явно массив – теперь такого объекта в оперативнойпамяти нетfd = open(namef, "rb") # открываем бинарный файл на чтениеMAS = pickle.load(fd) # метод load() загружает из файла указанный объект –# это «массив объектов типа me»fd.close()print('\nВосстановленный массив объектов')[ print(MAS[i].a, MAS[i].b, MAS[i].c) for i in range(N) ] # вывод на экран всех элементовмассива.