Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Классы встроенных исключенийСодержание книги
Поиск на нашем сайте
try: x = 1 / 0 # Ошибка: деление на 0 except ArithmeticError: # Указываем базовый класс print("Обработали деление на 0") Пользовательские исключения >>> raise ValueError("Описание исключения") Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> raise ValueError("Описание исключения") ValueError: Описание исключения
try: raise ValueError("Описание исключения") except ValueError as msg: print(msg) # Выведет: Описание исключения
class MyError(Exception): def __init__(self, value): self.msg = value def __str__(self): return self.msg # Обработка пользовательского исключения try: raise MyError("Описание исключения") except MyError as err: print(err) # Вызывается метод __str__() print(err.msg) # Обращение к атрибуту класса # Повторно возбуждаем исключение raise MyError("Описание исключения")
class MyError(Exception): pass try: raise MyError("Описание исключения") except MyError as err: print(err) # Выведет: Описание исключения
try: raise ValueError # Эквивалентно: raise ValueError() except ValueError: print("Сообщение об ошибке")
try: x = 1 / 0 except Exception as err: raise ValueError() from err
class MyError(Exception): pass try: raise MyError("Сообщение об ошибке") except MyError as err: print(err) raise # Повторно возбуждаем исключение
try: x = -3 assert x >= 0, "Сообщение об ошибке" except AssertionError as err: print(err) # Выведет: Сообщение об ошибке Итераторы, контейнеры и перечисления class MyIterator: # Определяем класс-итератор ... it = MyIterator() # Создаем его экземпляр for v in it: # и используем в цикле for ...
class MyList: # Определяем класс-список ... class MyDict: # Определяем класс-словарь ... lst, dct = MyList(), MyDict() # Используем их lst[0] = 1 dct["first"] = 578 print(lst[1]), print(dct["second"])
from enum import Enum # Импортируем базовый класс Enum class Versions(Enum): # Определяем класс-перечисление Python2.7 = "2.7" Python3.4 = "3.4" # Используем его if python_version == Versions.Python3.4: ... Итераторы Листинг 15.1. Класс-итератор class ReverseString: def __init__(self, s): self.__s = s def __iter__(self): self.__i = 0 return self def __next__(self): if self.__i > len(self.__s) - 1: raise StopIteration else: a = self.__s[-self.__i - 1] self.__i = self.__i + 1 return a
>>> s = ReverseString("Python") >>> for a in s: print(a, end="") nohtyP
Листинг 15.2. Расширенный класс-итератор class ReverseString: ... def __len__(self): return len(self.__s) def __str__(self): return self.__s[::-1]
>>> s = ReverseString("Python") >>> print(len(s)) >>> print(str(s)) nohtyP Контейнеры Контейнеры-последовательности Листинг 15.3. Класс MutableString class MutableString: def __init__(self, s): self.__s = list(s)
# Реализуем функциональность итератора def __iter__(self): self.__i = 0 return self def __next__(self): if self.__i > len(self.__s) - 1: raise StopIteration else: a = self.__s[self.__i] self.__i = self.__i + 1 return a def __len__(self): return len(self.__s)
def __str__(self): return "".join(self.__s)
# Определяем вспомогательный метод, который будет проверять # корректность индекса def __iscorrectindex(self, i): if type(i) == int or type(i) == slice: if type(i) == int and i > self.__len__() - 1: raise IndexError else: raise TypeError
# Реализуем функциональность контейнера-списка def __getitem__(self, i): self.__iscorrectindex(i) return self.__s[i] def __setitem__(self, i, v): self.__iscorrectindex(i) self.__s[i] = v def __delitem__(self, i): self.__iscorrectindex(i) del self.__s[i] def __contains__(self, v): return v in self.__s
>>> s = MutableString("Python") >>> print(s[-1]) n >>> s[0] = "J" >>> del s[2:4] >>> print(s) Juon
>>> s[9] = "u" Контейнеры-словари Листинг 15.3. Класс Version class Version: def __init__(self, major, minor, sub): self.__major = major # Старшая цифра self.__minor = minor # Младшая цифра self.__sub = sub # Подверсия def __str__(self): return str(self.__major) + "." + str(self.__minor) + "." + str(self.__sub)
# Реализуем функциональность словаря def __getitem__(self, k): if k == "major": return self.__major elif k == "minor": return self.__minor elif k == "sub": return self.__sub else: raise IndexError def __setitem__(self, k, v): if k == "major": self.__major = v elif k == "minor": self.__minor = v elif k == "sub": self.__sub = v else: raise IndexError def __delitem__(self, k): raise TypeError def __contains__(self, v): return v == "major" or v == "minor" or v == "sub"
>>> v = Version(3, 4, 3) >>> print(v["major"]) >>> v["sub"] = 4 >>> print(str(v)) 3.4.4 Перечисления from enum import Enum class Versions(Enum): V2_7 = "2.7" V3_4 = "3.4"
from enum import IntEnum class Colors(IntEnum): Red = 1 Green = 2 Blue = 3
from enum import Enum class Versions(Enum): V2_7 = "2.7" V3_4 = "3.4" MostFresh = "3.4"
from enum import Enum, unique @unique class Versions(Enum): V2_7 = "2.7" V3_4 = "3.4"
>>> e = Versions.V3_4 >>> e <Versions.V3_4: '3.4'> >>> e.value '3.4' >>> e == Versions.V2_7 False
>>> type(Colors) <class 'enum.EnumMeta'> >>> from enum import EnumMeta >>> type(Colors) == EnumMeta True
>>> type(Colors.Red) <enum 'Colors'> >>> type(Colors.Red) == Colors True
>>> Versions.V3_4 <Versions.V3_4: '3.4'> >>> e = Versions.V3_4 >>> e <Versions.V3_4: '3.4'>
>>> Versions["V3_4"] <Versions.V3_4: '3.4'>
>>> Versions("3.4") <Versions.V3_4: '3.4'>
>>> Versions.V2_7.name, Versions.V2_7.value ('V2_7', '2.7')
>>> list(Colors) [<Colors.Red: 1>, <Colors.Green: 2>, <Colors.Blue: 3>] >>> for c in Colors: print(c.value, end = " ") 1 2 3
>>> e = Versions.V3_4 >>> e == Versions.V3_4 True >>> e!= Versions.V2_7 True >>> e in Versions True >>> e in Colors False
>>> Colors.Red + 1 # Значение Colors.Red - 1 >>> Colors.Green!= 3 # Значение Colors.Green - 2 True >>> ["a", "b", "c"][Colors.Red] 'b'
Листинг 15.4. Перечисление, включающее атрибуты и методы from enum import Enum class VersionExtended(Enum): V2_7 = "2.7" V3_4 = "3.4"
# Методы экземпляра класса. # Вызываются у элемента перечисления def describe(self): return self.name, self.value def __str__(self): return str(__class__.__name__) + "." + self.name + ": " + self.value
# Метод объекта класса. # Вызывается у самого класса перечисления @classmethod def getmostfresh(cls): return cls.V3_4
>>> d = VersionExtended.V2_7.describe() >>> print(d[0] + ", " + d[1]) V2_7, 2.7 >>> print(VersionExtended.V2_7) VersionExtended.V2_7: 2.7 >>> print(VersionExtended.getmostfresh()) VersionExtended.V3_4: 3.4
class ExtendedColors(Colors): pass Работа с файлами и каталогами Открытие файла >>> "C:\\temp\\new\\file.txt" # Правильно 'C:\\temp\\new\\file.txt' >>> r"C:\temp\new\file.txt" # Правильно 'C:\\temp\\new\\file.txt' >>> "C:\temp\new\file.txt" # Неправильно!!! 'C:\temp\new\x0cile.txt'
>>> open("C:\temp\new\file.txt") Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> open("C:\temp\new\file.txt") OSError: [Errno 22] Invalid argument: 'C:\temp\new\x0cile.txt'
>>> import os.path # Подключаем модуль >>> # Файл в текущем рабочем каталоге (C:\book\) >>> os.path.abspath(r"file.txt") 'C:\\book\\file.txt'
>>> # Открываемый файл в C:\book\folder1\ >>> os.path.abspath(r"folder1/file.txt") 'C:\\book\\folder1\\file.txt' >>> # Открываемый файл в C:\book\folder1\folder2\ >>> os.path.abspath(r"folder1/folder2/file.txt") 'C:\\book\\folder1\\folder2\\file.txt'
>>> # Открываемый файл в C:\ >>> os.path.abspath(r"../file.txt") 'C:\\file.txt'
>>> # Открываемый файл в C:\book\folder1\ >>> os.path.abspath(r"/book/folder1/file.txt") 'C:\\book\\folder1\\file.txt' >>> # Открываемый файл в C:\book\folder1\folder2\ >>> os.path.abspath(r"/book/folder1/folder2/file.txt") 'C:\\book\\folder1\\folder2\\file.txt'
>>> os.path.sep '\\' >>> os.path.abspath(r"C:/book/folder1/file.txt") 'C:\\book\\folder1\\file.txt'
Листинг 16.1. Содержимое файла C:\book\test.py # -*- coding: utf-8 -*- import os, sys print("%-25s%s" % ("Файл:", os.path.abspath(__file__))) print("%-25s%s" % ("Текущий рабочий каталог:", os.getcwd())) print("%-25s%s" % ("Каталог для импорта:", sys.path[0])) print("%-25s%s" % ("Путь к файлу:", os.path.abspath("file.txt"))) print("-" * 40) import folder1.module1 as m m.get_cwd()
Листинг 16.2. Содержимое файла C:\book\folder1\module1.py # -*- coding: utf-8 -*- import os, sys def get_cwd(): print("%-25s%s" % ("Файл:", os.path.abspath(__file__))) print("%-25s%s" % ("Текущий рабочий каталог:", os.getcwd())) print("%-25s%s" % ("Каталог для импорта:", sys.path[0])) print("%-25s%s" % ("Путь к файлу:", os.path.abspath("file.txt")))
C:\>cd C:\book C:\book>test.py Файл: C:\book\test.py Текущий рабочий каталог: C:\book Каталог для импорта: C:\book Путь к файлу: C:\book\file.txt ---------------------------------------- Файл: C:\book\folder1\module1.py Текущий рабочий каталог: C:\book Каталог для импорта: C:\book Путь к файлу: C:\book\file.txt
C:\book>cd C:\ C:\>C:\book\test.py Файл: C:\book\test.py Текущий рабочий каталог: C:\ Каталог для импорта: C:\book Путь к файлу: C:\file.txt ---------------------------------------- Файл: C:\book\folder1\module1.py Текущий рабочий каталог: C:\ Каталог для импорта: C:\book Путь к файлу: C:\file.txt
Листинг 16.3. Пример использования функции chdir() # -*- coding: utf-8 -*- import os, sys # Делаем каталог с исполняемым файлом текущим os.chdir(os.path.dirname(os.path.abspath(__file__))) print("%-25s%s" % ("Файл:", __file__)) print("%-25s%s" % ("Текущий рабочий каталог:", os.getcwd())) print("%-25s%s" % ("Каталог для импорта:", sys.path[0])) print("%-25s%s" % ("Путь к файлу:", os.path.abspath("file.txt")))
C:\book>C:\Python34\python test.py
C:\>C:\book\test.py Файл: C:\book\test.py Текущий рабочий каталог: C:\book Каталог для импорта: C:\book Путь к файлу: C:\book\file.txt
>>> f = open(r"file.txt", "w") # Открываем файл на запись >>> f.write("String1\nString2") # Записываем две строки в файл >>> f.close() # Закрываем файл
>>> # Бинарный режим (символ \r остается) >>> with open(r"file.txt", "rb") as f: for line in f: print(repr(line))
b'String1\r\n' b'String2' >>> # Текстовый режим (символ \r удаляется) >>> with open(r"file.txt", "r") as f: for line in f: print(repr(line)) 'String1\n' 'String2'
>>> f = open(r"file.txt", "w", encoding="utf-8") >>> f.write("Строка") # Записываем строку в файл >>> f.close() # Закрываем файл
>>> with open(r"file.txt", "r", encoding="utf-8") as f: for line in f: print(line)
Строка
>>> f = open(r"file.txt", "w", encoding="utf-8-sig") >>> f.write("Строка") # Записываем строку в файл >>> f.close() # Закрываем файл
>>> with open(r"file.txt", "r", encoding="utf-8") as f: for line in f: print(repr(line))
'\ufeffСтрока' >>> with open(r"file.txt", "r", encoding="utf-8-sig") as f: for line in f: print(repr(line))
'Строка'
>>> with open(r"file.txt", "w", encoding="utf-16") as f: f.write("Строка")
>>> with open(r"file.txt", "r", encoding="utf-16") as f: for line in f: print(repr(line))
'Строка' Методы для работы с файлами with open(r"file.txt", "w", encoding="cp1251") as f: f.write("Строка") # Записываем строку в файл # Здесь файл уже закрыт автоматически
>>> # Текстовый режим >>> f = open(r"file.txt", "w", encoding="cp1251") >>> f.write("Строка1\nСтрока2") # Записываем строку в файл >>> f.close() # Закрываем файл >>> # Бинарный режим >>> f = open(r"file.txt", "wb") >>> f.write(bytes("Строка1\nСтрока2", "cp1251")) >>> f.write(bytearray("\nСтрока3", "cp1251")) >>> f.close()
>>> # Текстовый режим >>> f = open(r"file.txt", "w", encoding="cp1251") >>> f.writelines(["Строка1\n", "Строка2"]) >>> f.close() >>> # Бинарный режим >>> f = open(r"file.txt", "wb") >>> arr = [bytes("Строка1\n", "cp1251"), bytes("Строка2", "cp1251")] >>> f.writelines(arr) >>> f.close()
>>> f = open(r"file.txt", "r") # Открываем файл для чтения >>> f.writable() False >>> f = open(r"file.txt", "w") # Открываем файл для записи >>> f.writable() True
>>> # Текстовый режим >>> with open(r"file.txt", "r", encoding="cp1251") as f: f.read()
'Строка1\nСтрока2' >>> # Бинарный режим >>> with open(r"file.txt", "rb") as f: f.read()
b'\xd1\xf2\xf0\xee\xea\xe01\n\xd1\xf2\xf0\xee\xea\xe02'
>>> # Текстовый режим >>> f = open(r"file.txt", "r", encoding="cp1251") >>> f.read(8) # Считываем 8 символов 'Строка1\n' >>> f.read(8) # Считываем 8 символов 'Строка2' >>> f.read(8) # Достигнут конец файла '' >>> f.close()
>>> # Текстовый режим >>> f = open(r"file.txt", "r", encoding="cp1251") >>> f.readline(), f.readline() ('Строка1\n', 'Строка2') >>> f.readline() # Достигнут конец файла '' >>> f.close() >>> # Бинарный режим >>> f = open(r"file.txt", "rb") >>> f.readline(), f.readline() (b'\xd1\xf2\xf0\xee\xea\xe01\n', b'\xd1\xf2\xf0\xee\xea\xe02') >>> f.readline() # Достигнут конец файла b'' >>> f.close()
>>> f = open(r"file.txt", "r", encoding="cp1251") >>> f.readline(2), f.readline(2) ('Ст', 'ро') >>> f.readline(100) # Возвращается одна строка, а не 100 символов 'ка1\n' >>> f.close()
>>> # Текстовый режим >>> with open(r"file.txt", "r", encoding="cp1251") as f: f.readlines() ['Строка1\n', 'Строка2'] >>> # Бинарный режим >>> with open(r"file.txt", "rb") as f: f.readlines()
[b'\xd1\xf2\xf0\xee\xea\xe01\n', b'\xd1\xf2\xf0\xee\xea\xe02']
>>> # Текстовый режим >>> f = open(r"file.txt", "r", encoding="cp1251") >>> f.__next__(), f.__next__() ('Строка1\n', 'Строка2') >>> f.__next__() # Достигнут конец файла Traceback (most recent call last): File "<pyshell#26>", line 1, in <module> f.__next__() # Достигнут конец файла StopIteration >>> f.close()
>>> f = open(r"file.txt", "r", encoding="cp1251") >>> for line in f: print(line.rstrip("\n"), end=" ")
Строка1 Строка2 >>> f.close()
>>> f = open(r"file.txt", "r", encoding="cp1251") >>> f.fileno() # Дескриптор файла >>> f.close()
>>> f = open(r"file.txt", "r+", encoding="cp1251") >>> f.read() 'Строка1\nСтрока2' >>> f.truncate(5) >>> f.close() >>> with open(r"file.txt", "r", encoding="cp1251") as f: f.read()
'Строк'
>>> with open(r"file.txt", "w", encoding="cp1251") as f: f.write("String1\nString2")
>>> f = open(r"file.txt", "r", encoding="cp1251") >>> f.tell() # Указатель расположен в начале файла >>> f.readline() # Перемещаем указатель 'String1\n' >>> f.tell() # Возвращает 9 (8 + '\r'), а не 8!!! >>> f.close()
>>> f = open(r"file.txt", "rb") >>> f.readline() # Перемещаем указатель b'String1\r\n' >>> f.tell() # Теперь значение соответствует >>> f.close()
>>> import io >>> io.SEEK_SET, io.SEEK_CUR, io.SEEK_END (0, 1, 2)
>>> import io >>> f = open(r"file.txt", "rb") >>> f.seek(9, io.SEEK_CUR) # 9 байтов от указателя >>> f.tell() >>> f.seek(0, io.SEEK_SET) # Перемещаем указатель в начало >>> f.tell() >>> f.seek(-9, io.SEEK_END) # -9 байтов от конца файла >>> f.tell() >>> f.close()
>>> f = open(r"C:\temp\new\file.txt", "r") >>> f.seekable() True
>>> f = open(r"file.txt", "r+b") >>> f.name, f.mode, f.closed ('file.txt', 'rb+', False) >>> f.close() >>> f.closed True
>>> f = open(r"file.txt", "a", encoding="cp1251") >>> f.encoding 'cp1251' >>> f.close()
>>> import sys >>> sys.stdout.encoding 'cp1251'
>>> f = open(r"file.txt", "w", encoding="cp1251") >>> f.buffer.write(bytes("Строка", "cp1251")) >>> f.close() 16.3. Доступ к файлам с помощью модуля os >>> import os >>> os.name # Значение в ОС Windows 8 'nt' >>> import os # Подключаем модуль
>>> mode = os.O_WRONLY | os.O_CREAT | os.O_TRUNC >>> f = os.open(r"file.txt", mode) >>> os.write(f, b"String1\n") # Записываем данные >>> os.close(f) # Закрываем файл
>>> mode = os.O_WRONLY | os.O_CREAT | os.O_APPEND >>> f = os.open(r"file.txt", mode) >>> os.write(f, b"String2\n") # Записываем данные >>> os.close(f) # Закрываем файл
>>> f = os.open(r"file.txt", os.O_RDONLY) >>> os.read(f, 50) # Читаем 50 байт b'String1\nString2\n' >>> os.close(f) # Закрываем файл
>>> f = os.open(r"file.txt", os.O_RDONLY | os.O_BINARY) >>> os.read(f, 50) # Читаем 50 байт b'String1\r\nString2\r\n' >>> os.close(f) # Закрываем файл
>>> f = os.open(r"file.txt", os.O_RDONLY) >>> os.read(f, 5), os.read(f, 5), os.read(f, 5), os.read(f, 5) (b'Strin', b'g1\nS', b'tring', b'2\n') >>> os.read(f, 5) # Достигнут конец файла b'' >>> os.close(f) # Закрываем файл
>>> f = os.open(r"file.txt", os.O_RDONLY | os.O_BINARY) >>> os.lseek(f, 0, os.SEEK_END) # Перемещение в конец файла >>> os.lseek(f, 0, os.SEEK_SET) # Перемещение в начало файла >>> os.lseek(f, 9, os.SEEK_CUR) # Относительно указателя >>> os.lseek(f, 0, os.SEEK_CUR) # Текущее положение указателя >>> os.close(f) # Закрываем файл
>>> fd = os.open(r"file.txt", os.O_RDONLY) >>> fd >>> f = os.fdopen(fd, "r") >>> f.fileno() # Объект имеет тот же дескриптор >>> f.read() 'String1\nString2\n' >>> f.close() 16.4. Классы StringIO и BytesIO >>> import io # Подключаем модуль >>> f = io.StringIO("String1\n") >>> f.getvalue() # Получаем содержимое файла 'String1\n' >>> f.close() # Закрываем файл
>>> f = io.StringIO("String1\n") >>> f.tell() # Позиция указателя >>> f.seek(0, 2) # Перемещаем указатель в конец файла >>> f.tell() # Позиция указателя >>> f.seek(0) # Перемещаем указатель в начало файла >>> f.tell() # Позиция указателя >>> f.close() # Закрываем файл
>>> f = io.StringIO("String1\n") >>> f.seek(0, 2) # Перемещаем указатель в конец файла >>> f.write("String2\n") # Записываем строку в файл >>> f.getvalue() # Получаем содержимое файла 'String1\nString2\n' >>> f.close() # Закрываем файл
>>> f = io.StringIO() >>> f.writelines(["String1\n", "String2\n"]) >>> f.getvalue() # Получаем содержимое файла 'String1\nString2\n' >>> f.close() # Закрываем файл
>>> f = io.StringIO("String1\nString2\n") >>> f.read() 'String1\nString2\n' >>> f.seek(0) # Перемещаем указатель в начало файла >>> f.read(5), f.read(5), f.read(5), f.read(5), f.read(5) ('Strin', 'g1\nSt', 'ring2', '\n', '') >>> f.close() # Закрываем файл
>>> f = io.StringIO("String1\nString2") >>> f.readline(), f.readline(), f.readline() ('String1\n', 'String2', '') >>> f.close() # Закрываем файл
>>> f = io.StringIO("String1\nString2\nString3\n") >>> f.readline(5), f.readline(5) ('Strin', 'g1\n') >>> f.readline(100) # Возвращается одна строка, а не 100 символов 'String2\n' >>> f.close() # Закрываем файл
>>> f = io.StringIO("String1\nString2\nString3") >>> f.readlines() ['String1\n', 'String2\n', 'String3'] >>> f.close() # Закрываем файл
>>> f = io.StringIO("String1\nString2\nString3") >>> f.readlines(14) ['String1\n', 'String2\n'] >>> f.seek(0) # Перемещаем указатель в начало файла >>> f.readlines(17) ['String1\n', 'String2\n', 'String3'] >>> f.close() # Закрываем файл
>>> f = io.StringIO("String1\nString2") >>> f.__next__(), f.__next__() ('String1\n', 'String2') >>> f.__next__() ... Фрагмент опущен... StopIteration >>> f.close() # Закрываем файл
>>> f = io.StringIO("String1\nString2") >>> for line in f: print(line.rstrip())
String1 String2 >>> f.close() # Закрываем файл
>>> f = io.StringIO("String1\nString2\nString3") >>> f.truncate(15) # Обрезаем файл >>> f.getvalue() # Получаем содержимое файла 'String1\nString2' >>> f.close() # Закрываем файл
>>> f = io.StringIO("String1\nString2\nString3") >>> f.seek(15) # Перемещаем указатель >>> f.truncate() # Обрезаем файл до указателя >>> f.getvalue() # Получаем содержимое файла 'String1\nString2' >>> f.close() # Закрываем файл
>>> import io # Подключаем модуль >>> f = io.BytesIO(b"String1\n") >>> f.seek(0, 2) # Перемещаем указатель в конец файла >>> f.write(b"String2\n") # Пишем в файл >>> f.getvalue() # Получаем содержимое файла b'String1\nString2\n' >>> f.seek(0) # Перемещаем указатель в начало файла >>> f.read() # Считываем данные b'String1\nString2\n' >>> f.close() # Закрываем файл
>>> f = io.BytesIO(b"Python") >>> buf = f.getbuffer() >>> buf[0] # Получаем значение по индексу b'P' >>> buf[0] = b"J" # Изменяем значение по индексу >>> f.getvalue() # Получаем содержимое b'Jython' >>> buf.tolist() # Преобразуем в список чисел [74, 121, 116, 104, 111, 110] >>> buf.tobytes() # Преобразуем в тип bytes b'Jython' >>> f.close() # Закрываем файл
|
||||
Последнее изменение этой страницы: 2016-06-23; просмотров: 240; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.76.209 (0.007 с.) |