gpt4 book ai didi

python - 如何使用 PyGithub 将图像文件上传到 Github?

转载 作者:行者123 更新时间:2023-12-05 04:28:08 26 4
gpt4 key购买 nike

我想使用 Pygithub 将图像文件上传到我的 Github 存储库。

from github import Github

g=Github("My Git Token")
repo=g.get_repo("My Repo")
content=repo.get_contents("")
f=open("1.png")
img=f.read()
repo.create_file("1.png","commit",img)

但我收到以下错误:

File "c:\Users\mjjha\Documents\Checkrow\tempCodeRunnerFile.py", line 10, in <module>
img=f.read()
File "C:\Program Files\Python310\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 119: character maps to <undefined>

此方法适用于文本文件。但是我无法将图像文件上传到我的存储库。

当我使用 open-CV 读取图像文件时出现以下错误:

    assert isinstance(content, (str, bytes))
AssertionError

我使用 cv2 时的代码是:

from github import Github
import cv2
g=Github("")
repo=g.get_repo("")
content=repo.get_contents("")


f=cv2.imread("1.png")
img=f
repo.create_file("1.png","commit",img)

我认为 createFile() 只将字符串作为参数,因此会出现这些错误。

有什么方法可以使用 Pygithub(或任何库)将图像文件上传到 Github 吗?

最佳答案

希望你一切顺利。

刚刚测试了我的解决方案,它正在运行 💯 🚀

解释:
AssertionError assert isinstance(content, (str, bytes))
告诉我们它只需要 stringbytes

所以我们只需要将我们的图像转换为字节

#1 将图像转换为字节数组

file_path = "1.png"
with open(file_path, "rb") as image:
f = image.read()
image_data = bytearray(f)

#2 通过将数据转换为字节将图像推送到 Github Repo

repo.create_file("1.png","commit", bytes(image_data))

以有趣的方式#CompleteCode

from github import Github

g=Github("Git Token")
repo=g.get_repo("Repo")

file_path = "Image.png"
message = "Commit Message"
branch = "master"

with open(file_path, "rb") as image:
f = image.read()
image_data = bytearray(f)

def push_image(path,commit_message,content,branch,update=False):
if update:
contents = repo.get_contents(path, ref=branch)
repo.update_file(contents.path, commit_message, content, sha=contents.sha, branch)
else:
repo.create_file(path, commit_message, content, branch)


push_image(file_path,message, bytes(image_data), branch, update=False)

我对这个答案的引用。

  1. Converting Images to ByteArray
  2. Programmatically Update File PyGithub (StringFile Not Image)

希望这个回答对您有所帮助。祝你有美好的一天👋

关于python - 如何使用 PyGithub 将图像文件上传到 Github?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72668275/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com