社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Natalya • 3 年前 • 1047 次点击  

我有一个本地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
 
1047 次点击  
文章 [ 1 ]  |  最新文章 3 年前
larsks
Reply   •   1 楼
larsks    3 年前

当你要求 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...'