Разбор строки до символа с помощью библиотеки Construct - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь проанализировать git объект дерева с библиотекой конструкций. Но я не могу понять, как анализировать строку, пока не будет указан c символ.

Содержимое файла:

40000 directory\0 a84943494657751ce187be401d6bf59ef7a2587c
100644 pom.xml\0 97e5b6b292d248869780d7b0c65834bfb645e3ff

Сейчас я делаю:

_TREE_FORMAT = GreedyRange(Struct(
    "info" / CString("UTF-8"),
    "object_id" / Bytes(20)
))

Но это дает мне info="40000 directory". Я хотел бы отделить режим от имени файла, но я не могу использовать PaddedString, потому что режим может быть разной длины. Поэтому я хотел бы получить строку, которая заканчивается указанным символом c. Очевидно, я могу просто разделить его позже в коде, но я думаю, что было бы более элегантно использовать конструкции. Возможно ли это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...