чем отличаются открытые файлы изображений python2 open.read и python3 open.read

Как было намечено в ответе yatima2975, есть дополнительная разница:

substr() принимает отрицательную стартовую позицию как смещение от конца строки. substring() нет.

Из MDN :

Если начало отрицательное, substr () использует его как индекс символа с конца строки

Итак, суммируем функциональные отличия:

substring(begin-offset, end-offset-exclusive), где начальное смещение - 0 или больше

substr(begin-offset, length), где начальное смещение также может быть отрицательным

-2
задан hotfix 18 March 2019 в 19:23
поделиться

1 ответ

Здесь происходит следующее:

Python 2 не имеет типа для представления необработанных байтов. Вместо этого эти байты представлены строкой, и при печати он пытается вывести байты в виде символов. Однако, если символ не ASCII, это приводит к странным символам со значками вопросительного знака и т. Д.

В Python 3 был представлен тип байтов. Открытие файла как двоичного файла в Python 3 вернет тип байта. При печати типа байтов все байты, которые не могут быть правильно представлены в ASCII, экранируются как что-то между \x00 и \xFF (шестнадцатеричное).

Таким образом, разница в том, что Python 3 имеет возможность хранить и печатать необработанные байты, а Python 2 - нет.

0
ответ дан Ian Rehwinkel 18 March 2019 в 19:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: