如何使用 Python 获取存储库分支的列表

2024-04-10

我正在尝试使用 Python 和以下代码获取存储库上所有可用分支的列表:

import subprocess

branches = ["All"]
command = "git branch -r"
branch_list = subprocess.check_output(command)

for branch in branch_list:
   print branch
   branches.append[branch]

我想要的是有这样的东西:

print branches[0] # is "All"
print branches[1] # is "branch1"
print branches[2] # is "branch2"
etc etc

但我没有

print branches[0] # is "All"
print branches[1] # is "b"
print branches[2] # is "r"
print branches[3] # is "a"
print branches[4] # is "n"
print branches[5] # is "c"
print branches[6] # is "h"
etc etc

感谢您的时间和帮助


浏览一下check_output 文档 https://docs.python.org/3/library/subprocess.html#subprocess.check_output,看起来我们正在返回一团字节。为了更容易使用,我们可以对其进行解码。然后,自从git branch -r每行输出一个分支,在换行符上分割字符串:

branches = subprocess.check_output(command).decode().split('\n')

但我认为有一种更简单的方法可以做到这一点。 git 中的每个对象都对应于.git目录。在这种情况下,您可以在以下位置找到您的分支机构列表:.git/refs/heads:

import os
branches = os.listdir('.git/refs/heads')

编辑(2020/10/13):我花了更多时间subprocess自从写这篇回复以来,我想指出text选项(通过subprocess.run):

If encoding or errors已指定,或text为 true 时,将使用指定的编码和错误或在文本模式下打开 stdin、stdout 和 stderr 的文件对象io.TextIOWrapper默认。

这意味着你可以写check_output表达式为:

branches = subprocess.check_output(command, text=True).split('\n')

将编码和解码留给系统。无论你喜欢哪个!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Python 获取存储库分支的列表 的相关文章

  • 使用 for 循环 Python 为数组赋值

    我正在尝试将字符串的值分配给不同的数组索引 但我收到一个名为 列表分配超出范围 的错误 uuidVal distVal uuidArray distArray for i in range len returnedList for beac
  • 为什么具有复杂无穷大的 NumPy 运算会导致有趣的结果?

    我注意到复杂的无穷大的有趣结果 In 1 import numpy as np In 2 np isinf 1j np inf Out 2 True In 3 np isinf 1 1j np inf Out 3 True In 4 np
  • 代码 zip( *sorted( zip(units, error) ) ) 的作用是什么?

    对于我的申请units and errors始终是数值列表 我尝试用谷歌搜索每个部分的作用 并找出了 zip 的第一部分 它似乎 ziped list zip units errors 只需将单位和误差配对即可生成一个列表 如下所示 uni
  • 如何解决错误 EGL 驱动程序消息(错误)eglQueryDeviceAttribEXT:使用 Selenium 和 Python 的错误属性

    我从 selenium 收到随机错误消息 即使它们都与我正在运行的确切 Web 驱动程序命令无关 据我所知 此错误不会中断程序 它只是添加不需要的警报 使我的打印件难以阅读 Chrome 版本 75 0 3770 100 官方版本 64 位
  • 不使用 graphviz/web 可视化决策树

    由于某些限制 我无法使用 graphviz webgraphviz com 可视化决策树 工作网络与另一个世界是封闭的 问题 是否有一些替代实用程序或一些 Python 代码用于至少非常简单的可视化可能只是决策树的 ASCII 可视化 py
  • Python控制台默认十六进制显示

    我在 Python 控制台中做了很多工作 其中大部分都涉及地址 我更喜欢以十六进制形式查看地址 So if a 0xBADF00D 当我简单地输入Python gt a进入控制台查看其值 我更喜欢 python 回复0xBADF00D代替1
  • 如何使用 sourceTree 进行推送?

    我正在使用 sourceTree 管理 Unity 项目 版本 4 6 3 我只是想返回到上一次提交 右键选择 将当前分支重置到此提交 在使用模式中选择 硬 然后放回上一次提交 之后 我尝试去推 但没有成功 抱歉 当时我忘记了错误 之后 我
  • Tensorflow 到 ONNX 的转换

    我目前正在尝试转换我使用本教程创建的已保存 且正在工作 的 pb 文件 https github com thtrieu darkflow https github com thtrieu darkflow 到 onnx 文件中 我目前正在
  • Pandas:向量化局部范围操作([i:i+2] 行的最大值和总和)

    我希望在数据帧中的每一行的局部范围内进行计算 同时避免速度缓慢for环形 例如 对于下面数据中的每一行 我想找到未来 3 天内 包括当天 的最高气温以及未来 3 天内的总降雨量 Day Temperature Rain 0 30 4 1 3
  • 替换 pandas 数据框中的点

    我有一个如图所示的数据框 数字实际上是对象 正在做df treasury rate pd to numeric df treasury rate 可预见的炸弹 然而 做df replace np nan 似乎没有摆脱这个点 所以我很困惑 有
  • 通过链接进入 git-repo,无需冗长的对话框

    In a directory I have symbolic links into a git administered directory all under Linux Every time I want to e dit such a
  • 使用 Matplotlib、PyQt 和 Threading 进行实时绘图导致 python 崩溃

    我一直在努力研究我的 Python 应用程序 但找不到任何答案 我有 PyQT GUI 应用程序 它使用 Matplotlib 小部件 GUI 启动一个新线程来处理 mpl 小部件的绘图 恐怕我现在通过从另一个线程访问 matplotlib
  • 如何使用JQuery和Django(ajax + HttpResponse)?

    假设我有一个 AJAX 函数 function callpage ajax method get url abc data x 3 beforeSend function success function html IF HTTPRESPO
  • 在 Django 中翻译文件时的 Git 命令

    我在 Django 中有一个现有的应用程序 我想在页面上添加翻译 在页面上我有 trans Projects 在 po 文件中我添加了 templates staff site html 200 msgid Projects msgid P
  • 使用多行选项和编码选项读取 CSV

    在 azure Databricks 中 当我使用以下命令读取 CSV 文件时multiline true and encoding SJIS 似乎编码选项被忽略了 如果我使用multiline选项 Spark 使用默认值encoding那
  • Django:在单独的线程中使用相同的测试数据库

    我正在使用具有以下数据库设置的测试数据库运行 pytests DATABASES default ENGINE django db backends postgresql psycopg2 NAME postgres USER someth
  • 如何查看 github 的 SSH 密钥?

    我最近收到一封来自 Github 的电子邮件 要求我检查我的 SSH 密钥 请检查您的钥匙并确保您 认出他们 如果您有任何疑问 请拒绝钥匙并 上传新密钥 如何在 ubuntu 11 10 上使用 git 检查我的密钥 您可以按照 GitHu
  • 磁盘寻道时间测量方法

    我编写了一个脚本来测量 HDD 上的寻道时间 并且其完成方式的微小变化会导致显着不同的时间 第一个周期在磁盘开头的区域内进行跳转 第二个周期选择磁盘上执行查找的随机区域 相同大小 这种方法显然不同 但我不明白为什么它会改变结果 请注意 对于
  • 使用 Tweepy 获取推文时出错

    我有一个用于获取推文的 Python 脚本 在脚本中我使用该库 Tweepy 我使用有效的身份验证参数 运行此脚本后 一些推文存储在我的 MongoDB 中 有些则被 if 语句拒绝 但我仍然收到错误 requests packages u
  • 无法在 Python 2.4 中解码 unicode 字符串

    这是Python 2 4 中的 这是我的情况 我从数据库中提取一个字符串 它包含一个变音的 o xf6 此时 如果我运行 type value 它会返回 str 然后我尝试运行 decode utf 8 但收到错误 utf8 编解码器无法解

随机推荐

  • 无法访问包管理器。安装android应用程序时系统是否正在运行

    在模拟器中安装 android 应用程序时 出现以下错误 请帮我解决这个错误 错误信息 emulator exe avd avd name adb wait for device adb install path to apk could
  • 在 Java 中创建 JSON Web 令牌

    我正在尝试创建一个 JSON Web 令牌 以便使用它通过 Google Analytics API 访问进行刷新令牌调用 我采取了服务帐户方法 根据这种方法 我需要 创建服务帐户 添加使用 Google Analytics 帐户为 Ana
  • 下载带有 play 框架的 typesafe2.0,在网络请求上出现异常 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 下载了带有
  • 如何将字节数组转回文件并使用 C# 自动打开它?

    我正在编写一些代码来将文件附件添加到我正在构建的应用程序中 我已经添加和删除工作 但我不知道从哪里开始实施开放 我有一个字节数组 来自表字段 我不知道如何使其自动打开 例如 如果我有一个 PDF 字节数组 如何让我的应用程序自动打开 Acr
  • 如何使用模块向 Fortran 公开 Python 回调

    这个 scipy 文档页面 http docs scipy org doc numpy dev f2py python usage html call back arguments关于 F2Py 指出 回调函数 也可以在模块中显式设置 然后
  • 如何访问角度材料弹出/对话框组件内组件的属性?

    我正在从我的组件中打开一个对话框 const dialogRef this dialog open DialogOverviewExampleDialog width 500px data DialogData dialogRef afte
  • mailx 更改发件人姓名

    我明白要更改发件人姓名mailx我应该做以下事情 mailx r email protected cdn cgi l email protection s some subject email protected cdn cgi l ema
  • Boost ASIO:服务器如何知道客户端是否仍然连接?

    我在用boost asio对于服务器 客户端应用程序 服务器一次只接受一个连接 我想知道服务器验证客户端是否仍然连接的最佳方法是什么 这样做的目的是我希望能够知道客户端是否崩溃 以便我可以重新开始侦听新的连接尝试 在我的应用程序中 我使用以
  • 确实开始了。 。 。 end while 表示“块”?

    temp 98 3 begin print Your temperature is temp to s Fahrenheit puts I think you re okay temp 0 1 end while temp lt 98 6
  • 使用不同的密钥库重新签名 apk

    目前 我正在使用私有密钥库文件对 apk 进行签名 但我想使用不同的密钥库文件对该 apk 进行签名 我怎样才能退出那个apk 您可以使用不同的密钥库来退出您的 apk 按着这些次序 签署发布 1 apk gt 1 release apk
  • 为什么 FreePhysicalMemory 给出的值不正确?

    我正在尝试使用 win32 OperatingSystem 类中的 FreePhysicalMemory 属性 问题是 它通常只返回几个 MB 的值 显然 考虑到我的计算机上仅打开 Powershell 我有更多可用 RAM 我正在使用以下
  • XmlSerializer 将 xsi:type 替换为节点名称

    当前 XmlSerializer 生成以下结构
  • user_data中的命令不会在terraform中执行

    您好 EC2 实例已创建 但作为 userdata sh 一部分的命令未执行 当我通过putty手动连接EC2时 我发现EC2实例中没有安装nginx 为了验证脚本是否正在执行 我添加了回显消息 但当我运行 terraform apply
  • 我们如何确定Python中给定月份的天数[重复]

    这个问题在这里已经有答案了 我需要在 python 中计算给定月份的天数 如果用户输入 2011 年 2 月 程序应该能够告诉我 2011 年 2 月有 28 天 谁能告诉我应该使用哪个库来确定给定月份的长度 你应该使用calendar m
  • 如何使用 Material Design 设计警报对话框片段中的按钮样式?

    我想更改警报对话框上的默认按钮样式 标准警报对话框片段 在 Android L 中 如下所示 我希望将右侧按钮的样式设置为普通按钮而不是无边框按钮 Google 本身似乎在各种对话框中使用了这种模式 例如 有谁知道这是否可能 而无需从头开始
  • 如何在 Three.js 中使用反射?

    我想在带有 Three js 的 WebGL 页面中拥有一个反射立方体表面 它应该类似于手机显示屏 反射一些光 但它仍然必须是黑色的 我创建了一个反射立方体 以及反射球体 的示例 并附有详细的注释 现场版本位于 http stemkoski
  • 当用户单击外侧时,警报对话框消失

    大家好 我有一个带有两个文本框的警报框 这里的问题是当用户在弹出窗口之外单击时警报对话框消失 或者当用户单击 确定 按钮时警报对话框消失 所以请在这方面帮助我 提前致谢 final AlertDialog Builder builder n
  • 如何计算FB页面的点赞数?

    我必须做一个非常简单的操作 但我的编程能力还不够 我必须计算 Facebook 页面上的点赞数并将该数字打印在我的网站上 我有两个脚本可以很好地完成普通网站的工作 但它们不想显示页面的点赞数
  • java.lang.NoClassDefFoundError: android.support.v4.view.LayoutInflaterCompat

    我在 4 4 2 版本的 Samsung note 2 中收到以下错误 我也尝试过 HTC One X 4 2 2 我认为它是棒棒糖之前的 因为它在 Lollipop 上运行良好 有什么猜测吗 这是我的 gradle 文件 apply pl
  • 如何使用 Python 获取存储库分支的列表

    我正在尝试使用 Python 和以下代码获取存储库上所有可用分支的列表 import subprocess branches All command git branch r branch list subprocess check out