Получить бинарный файл из gitpython по ревизии (получил уникальную строку, хочу байтов) - PullRequest
0 голосов
/ 24 апреля 2018

Я хочу получить доступ к содержимому двоичного файла в репозитории git, используя gitpython .К сожалению, repo.git.show возвращает строку в юникоде, а не объект байтов.Поэтому я хочу преобразовать строку в байты и не могу этого сделать.

#!/usr/bin/env python

from io import BytesIO
import git

# initialize repository
repo = git.Repo('.')
# use git show to get the content of example.jpg in revision 19e91a
u = repo.git.show("4cb2a02:example.jpg")

b = BytesIO(u.encode('utf-8'))

и натолкнуться на

UnicodeEncodeError: 'utf-8' codec can't encode character '\udcff' in position 0: surrogates not allowed

Что не удивительно.

Как можноЛи я преобразовать эту строку Unicode в байтах?Или лучше, как я могу получить содержимое файла в виде объекта байта?

1 Ответ

0 голосов
/ 24 апреля 2018

попробуй

b = BytesIO(u.encode('utf-8','surrogateescape'))
...