gitpython создание zip-архива

Как я могу создать архив с gitpython, я попробовал следующее, которое создает файл, но я не могу открыть его, он говорит мне, что произошла ошибка при чтении архива архив кажется недействительным или поврежден

from git import *
repo = Repo(repo_path)
assert repo.bare == False
repo.archive(open("repo.tar",'w'))

Я хотел бы создать zip-файл, поэтому я попробовал это, но здесь он создает пустой zip-файл (правильный путь к репо, так как при использовании repo.clone он клонирует все)

repo.archive(open("repo.zip",'w'), format="zip") 

1 ответ

Вам нужно открыть ваш файл как двоичный файл (добавив b к mode параметр) и закройте его, когда закончите. Следующие изменения в вашем примере заставляют его работать правильно:

from git import Repo

repo = Repo(repo_path)
assert not repo.bare
with open('repo.zip', 'wb') as archive_file:
    repo.archive(archive_file, format='zip')
Другие вопросы по тегам