Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Materialy_2.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Байтовые строки (bytes и bytearray)

Байтовые строки в Python - что это такое и с чем это едят? Байтовые строки очень похожи на обычные строки, но с некоторыми отличиями. Попробуем выяснить, с какими.

Что такое байты? Байт - минимальная единица хранения и обработки цифровой информации. Последовательность байт представляет собой какую-либо информацию (текст, картинку, мелодию...).

Создаём байтовую строку:

>>> b'bytes'

b'bytes'

>>> 'Байты'.encode('utf-8')

b'xd0x91xd0xb0xd0xb9xd1x82xd1x8b'

>>> bytes('bytes', encoding = 'utf-8')

b'bytes'

>>> bytes([50, 100, 76, 72, 41])

b'2dLH)'

Если первые три способа нам уже известны, то последний нужно пояснить. Функция bytes принимает список чисел от 0 до 255, и возвращает байты, получающиеся применением функции chr.

>>> chr(50)

'2'

>>> chr(100)

'd'

>>> chr(76)

'L'

Что делать с байтами? Хотя байтовые строки поддерживают практически все строковые методы, с ними мало что нужно делать. Обычно их надо записать в файл / прочесть из файла и преобразовать во что-либо другое (конечно, если очень хочется, то можно и распечатать). Для преобразования в строку используется метод decode:

>>> b'xd0x91xd0xb0xd0xb9xd1x82xd1x8b'.decode('utf-8')

'Байты'

Bytearray

Bytearray в python - массив байт. От типа bytes отличается только тем, что является изменяемым. Про него, в общем-то, больше рассказать нечего.

>>> b = bytearray(b'hello world!')

>>> b

bytearray(b'hello world!')

>>> b[0]

104

>>> b[0] = b'h'

Traceback (most recent call last):

File "", line 1, in

b[0] = b'h'

TypeError: an integer is required

>>> b[0] = 105

>>> b

bytearray(b'iello world!')

>>> for i in range(len(b)):

b[i] += i

>>> b

bytearray(b'ifnos%}vzun,')

Файлы

В данном материале мы рассмотрим встроенные средства python для работы с файлами: открытие / закрытие, чтение и запись.

Итак, начнем. Прежде, чем работать с файлом, его надо открыть. С этим замечательно справится встроенная функция open:

f = open('text.txt', 'r')

У функции open много параметров, они указаны в статье "Встроенные функции", нам пока важны 3 аргумента: первый, это имя файла. Путь к файлу может быть относительным или абсолютным. Второй аргумент, это режим, в котором мы будем открывать файл.

Режим

Обозначение

'r'

открытие на чтение (является значением по умолчанию).

'w'

открытие на запись, содержимое файла удаляется, если файла не существует, создается новый.

'x'

открытие на запись, если файла не существует, иначе исключение.

'a'

открытие на дозапись, информация добавляется в конец файла.

'b'

открытие в двоичном режиме.

't'

открытие в текстовом режиме (является значением по умолчанию).

'+'

открытие на чтение и запись

Режимы могут быть объединены, то есть, к примеру, 'rb' - чтение в двоичном режиме. По умолчанию режим равен 'rt'.

И последний аргумент, encoding, нужен только в текстовом режиме чтения файла. Этот аргумент задает кодировку.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]