Eu quero acessar o conteúdo de um binário em um repositório git usando gitpython. Infelizmente repo.git.show
retorna uma string unicode e não um objeto de bytes. Então eu quero converter a string em bytes e não conseguir fazer isso.
#!/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"))
e se deparar
UnicodeEncodeError: "utf-8" codec can"t encode character "udcff" in position 0: surrogates not allowed
O que não é uma surpresa.
Como posso converter essa string unicode em bytes? Ou melhor, como faço para buscar o conteúdo do arquivo como objeto de byte?
Respostas:
1 para resposta № 1experimentar
b = BytesIO(u.encode("utf-8","surrogateescape"))