Ваш вопрос, по-видимому, подразумевает, что «токенизация» является каким-то таинственным и сложным процессом. Но на самом деле, то, что вы пытаетесь сделать, это в точности токенизация .
Вот совершенно правильный способ прочитать файл, который вы показываете, разбить его на токены и сохранить в структуре данных:
def read_file_data(data_file_path):
result = {}
with open(data_file_path) as data_file:
for line in data_file:
key, value = line.split(' ', maxsplit=1)
result[key] = value
return result
Это было не сложно, не было много кода, ему не нужна сторонняя библиотека, и с ней легко работать:
data = read_file_data('path/to/file')
print(data['Nom']) # prints "NMS-01"
Теперь эта реализация делает много предположений о структуре файла. Среди прочего, предполагается:
- Весь файл структурирован как пары ключ / значение
- Каждая пара ключ / значение помещается на одной строке
- Каждая строка в файле является парой ключ / значение (без комментариев или пустых строк)
- Ключ не может содержать пробелы
- Значение не может содержать символы новой строки
- Один и тот же ключ не появляется несколько раз в файле (или, если он появляется, допустимо, чтобы последнее заданное значение было единственным возвращенным)
Некоторые из этих предположений могут быть ложными, но все они верны для предоставленной вами выборки данных.
В более общем плане: если вы хотите проанализировать некоторые виды структурированных данных, вам необходимо понять структуру данных и то, как значения отделены друг от друга. Вот почему были изобретены распространенные форматы структурированных данных, такие как XML, JSON и YAML (среди многих других!). Если вы знаете язык , который вы анализируете, tokenization - это просто код, который вы пишете, чтобы сопоставить язык с текстом вашего ввода.