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

我找到了gitpython库,但我不确定如何正确使用它

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

但我不知道下一步该怎么办

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

推荐答案

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

Python相关问答推荐

当多个值具有相同模式时返回空

为什么符号没有按顺序添加?

如果值不存在,列表理解返回列表

如何在solve()之后获得症状上的等式的值

优化器的运行顺序影响PyTorch中的预测

ThreadPoolExecutor和单个线程的超时

Odoo 16使用NTFS使字段只读

如何更改groupby作用域以找到满足掩码条件的第一个值?

使用Python从rotowire中抓取MLB每日阵容

(Python/Pandas)基于列中非缺失值的子集DataFrame

找到相对于列表索引的当前最大值列表""

python sklearn ValueError:使用序列设置数组元素

Polars Group by描述扩展

使用字典或列表的值组合

在用于Python的Bokeh包中设置按钮的样式

当HTTP 201响应包含 Big Data 的POST请求时,应该是什么?  

在matplotlib中重叠极 map 以创建径向龙卷风图

BeatuifulSoup从欧洲志愿者服务中获取数据和解析:一个从EU-Site收集机会的小铲子

用0填充没有覆盖范围的垃圾箱

具有不匹配列的2D到3D广播