Как режим чтения open() Python и двоичный режим чтения обрабатывают нулевые байты и f.seek?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как режим чтения open() Python и двоичный режим чтения обрабатывают нулевые байты и f.seek?

Сообщение Anonymous »

Я провел 3 эксперимента
  • режим rb
  • режим r
  • режим r с поиском различных байтов смещения

Код: Выделить всё

with open("small_file.txt", "w") as f:
f.seek(2)
f.write("Content")

with open("small_file.txt", "rb") as f:
content = f.read()
print(f"START|{content}|END")
f.seek(2) во время записи вставляет несколько нулевых байтов (2 — произвольные).
Вывод: START|b'\x00\x00Content'|END (здесь нет ничего удивительного)
Если я изменю rb на r, я получу START| Content|END.
Вопрос 1. Каковы основные концепции, объясняющие поведение отсутствия чтения (или чтения, но не печати?) нулевых байтов? это указано в какой-либо документации?
Потом я добавил поиск перед чтением

Код: Выделить всё

with open("small_file.txt", "w") as f:
f.seek(2)
f.write("Content")

with open("small_file.txt", "r") as f:
f.seek(3)
content = f.read()
print(f"START|{content}|END")
который возвращает START|ontent|END.
Я вижу, что поведение может быть любым

Подробнее здесь: https://stackoverflow.com/questions/787 ... -bytes-and
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»