TL; DR: Как получить точный номер строки токена в модуле python shlex
.
Рассмотрим простой текстовый файл:
line2
line5
т.е. первая строка пуста, вторая строка содержит токен line2
, третья строка пуста, четвертая строка пуста, пятая строка содержит токен line5
. Вы можете создать этот файл в bash используя:
$ echo -e '\nline2\n\n\nline5\n' > data.txt
Теперь рассмотрим простой скрипт
#! /usr/bin/env python3
import shlex
s = shlex.shlex(open("data.txt"))
for _ in range(3):
print("lineno: {}".format(s.lineno))
print("Token: {}".format(s.get_token()))
Вывод:
lineno: 1
Token: line2
lineno: 3
Token: line5
lineno: 6
Token:
Как вы можете увидеть, что ни одна строка токена не может быть идентифицирована, независимо от того, получите ли вы shlex.lineno
до или после get_token()
. Как получить токен и номер его строки в модуле shlex
? (Даже не смей просить номер столбца)