代码之家  ›  专栏  ›  技术社区  ›  Natalya

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

  •  0
  • Natalya  · 技术社区  · 3 年前

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

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

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

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

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

    0 回复  |  直到 3 年前
        1
  •  2
  •   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...'