ОКРУЖАЮЩАЯ СРЕДА :
Intel/88-Ubuntu SMP Tue Feb 11 20:11:34 UTC 2020
Python 3.6.9
ДАНА :
Крошечная программа, хранящаяся в test.py
, которая показывает введите положение и введите код символа для последовательного чтения отдельных символов.
fh = open("tmp.txt", "r")
while 1 + 1 == 2:
tmp = fh.read(1)
if not tmp: break
print(fh.tell(), "%x" % ord(tmp))
Заполните tmp.txt
в bash, чтобы содержать некоторые данные
echo -e "\x41\x42\x3b\x0d\x0a\x0d\x0a" > tmp.txt
OUTPUT :
Запуск python3 test.py
доставляет
1 41
2 42
18446744073709551620 3b
5 a
7 a
8 a
ВОПРОС :
Откуда берется чрезмерно высокое значение 18446744073709551620
для fh.tell()
родом из? Интересно, что этого не происходит в следующих случаях.
echo -e "\x41\x42\x3b\x0d\x0a" > tmp.txt # only one 0x0d/0x0a
echo -e "\x42\x3b\x0d\x0a\x0d\x0a" > tmp.txt # no 'A' at the beginning of the file