Py学习  »  Python

如何使用python从git存储库获取特定的文件版本

Natalya • 2 年前 • 332 次点击  

我有一个本地git repo,我正试图找到一种方法,将我的xlsx文件的特定版本放入Python代码中,这样我就可以使用pandas来处理它。

我找到了Python库;但我不知道如何正确使用它。

repo = Repo(path_to_repo)
commit = repo.commit(sha)
targetfile = commit.tree / 'dataset.xlsx'

我不知道下一步该怎么办。 我试着用path把它加载到熊猫身上;但是,当然,它只是加载了我的上一个版本。

如何将以前版本的xlsx加载到pandas?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/132206
 
332 次点击  
文章 [ 1 ]  |  最新文章 2 年前
larsks
Reply   •   1 楼
larsks    2 年前

当你要求 commit.tree / 'dataset.xlsx' ,你会得到一个 git.Blob 对象:

>>> targetfile
<git.Blob "3137d9443f54325b8ad8a263b13053fee47fbff2">

如果要读取对象的内容,可以使用 data_stream 方法,该方法返回类似文件的对象:

>>> data = targetfile.data_stream.read()

或者你可以使用 stream_data 方法(不要看我,我没有给它们命名),该方法将数据写入类似文件的对象:

>>> import io
>>> buf = io.BytesIO()
>>> targetfile.stream_data(buf)
<git.Blob "3137d9443f54325b8ad8a263b13053fee47fbff2">
>>> buf.getvalue()
b'The contents of the file...'