Python脚本判断一个目录是否是git仓库

2023-12-29

我刚刚开始使用 Python,我的第一个任务是编写一个脚本来确定它运行的目录是否是 git 存储库。一位同学建议了这段代码:

#! /usr/bin/env python

from subprocess import Popen, PIPE, STDOUT
if Popen(("git", "branch"), stderr=STDOUT, stdout=PIPE).returncode != 0:
    print("Nope!")
else:
    print("Yup!")

它应该根据控制台命令“gitbranch”的返回码打印输出。但是,该脚本在存储库中不起作用。

无论如何,我将不胜感激任何有关此事的建议。

该作业还包括:

  • 能够在 Windows 上使用相同的脚本
  • 最终将确定的路径传递给脚本,而无需将其复制到目标目录

非常感谢!


Install gitpython, e.g pip install gitpython.

然后创建一个像这样的函数:

import git

...

def is_git_repo(path):
    try:
        _ = git.Repo(path).git_dir
        return True
    except git.exc.InvalidGitRepositoryError:
        return False
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python脚本判断一个目录是否是git仓库 的相关文章

  • 将 Matplotlib 误差线放置在不位于条形中心的位置

    我正在 Matplotlib 中生成带有错误栏的堆积条形图 不幸的是 某些层相对较小且数据多样 因此多个层的错误条可能重叠 从而使它们难以或无法读取 Example 有没有办法设置每个误差条的位置 即沿 x 轴移动它 以便重叠的线显示在彼此
  • 使 django 服务器可以在 LAN 中访问

    我已经安装了Django服务器 可以如下访问 http localhost 8000 get sms http 127 0 0 1 8000 get sms 假设我的IP是x x x x 当我这样做时 从同一网络下的另一台电脑 my ip
  • git 如何查找分支源自的提交哈希

    假设我从主分支分支到主题分支 然后在主题分支上进行了一些提交 是否有命令告诉我主题分支源自的主分支上的提交哈希 理想情况下 我不必知道我做了多少次提交 试图避免 HEAD 5 我已经用谷歌搜索过 但似乎无法找到答案 谢谢 use git m
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • 如何生成类似github的影响图?

    是否有一些程序 或者我错过的一些神奇的 git 插件 可以从 git 存储库获取影响图或类似的东西 而无需通过 github 就数据收集而言 我可以生成图表 我不确定从哪里开始编写自己的代码 我假设有一些标志我可以传递给 git log 来
  • 以编程方式停止Python脚本的执行? [复制]

    这个问题在这里已经有答案了 是否可以使用命令在任意行停止执行 python 脚本 Like some code quit quit at this point some more code that s not executed sys e
  • Python 函数可以从作用域之外赋予新属性吗?

    我不知道你可以这样做 def tom print tom s locals locals def dick z print z name z name z guest Harry print z guest z guest print di
  • 如何关闭分支而不将其从 git 的历史记录中删除?

    我想提交并关闭其分支 而不将其从历史中删除 有了水银我会commit close branch then update转到上一个 然后继续工作 有了 git 我很困惑 没有与 Git 中关闭分支完全相同的方法 因为 Git 分支比 Merc
  • AWS EMR Spark Python 日志记录

    我正在 AWS EMR 上运行一个非常简单的 Spark 作业 但似乎无法从我的脚本中获取任何日志输出 我尝试过打印到 stderr from pyspark import SparkContext import sys if name m
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • Python 的“zip”内置函数的 Ruby 等价物是什么?

    Ruby 是否有与 Python 内置函数等效的东西zip功能 如果不是 做同样事情的简洁方法是什么 一些背景信息 当我试图找到一种干净的方法来进行涉及两个数组的检查时 出现了这个问题 如果我有zip 我可以写这样的东西 zip a b a
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 为什么 git-svn 应该积极搜索旧历史?

    当我运行 git svn clone s 时发生了一些奇怪的事情 尽管以下信息告诉我们不要惊慌 但我想知道为什么会出现这种 svn 错误 为什么这个路径不存在 是被别人删除了吗 如果是 为什么 git svn 应该积极搜索旧历史记录 Ini
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • 解释 Python 中的数字范围

    在 Pylons Web 应用程序中 我需要获取一个字符串 例如 关于如何做到这一点有什么建议吗 我是 Python 新手 我还没有找到任何可以帮助解决此类问题的东西 该列表将是 1 2 3 45 46 48 49 50 51 77 使用
  • 有没有办法检测正在运行的代码是否正在上下文管理器内执行?

    正如标题所述 有没有办法做到这样的事情 def call back if called inside context print running in context else print called outside context 这将
  • Rocket UniData/UniVerse:ODBC 无法分配足够的内存

    每当我尝试使用pyodbc连接到 Rocket UniData UniVerse 数据时我不断遇到错误 pyodbc Error 00000 00000 Rocket U2 U2ODBC 0302810 Unable to allocate
  • Python Selenium:如何在文本文件中打印网站上的值?

    我正在尝试编写一个脚本 该脚本将从 tulsaspca org 网站获取以下 6 个值并将其打印在 txt 文件中 最终输出应该是 905 4896 7105 23194 1004 42000 放置的动物 的 HTML span class

随机推荐

  • laravel - 刀片模板布局结构为每 4 个跨度添加行流体

    我有这个刀片模板 div class row fluid foreach courses as course div class span3 learn Content div endforeach Output div class row
  • 使用 SheetJS 设置日期格式

    预先感谢您百忙之中看一下这个问题 我正在尝试使用 SheetJS 读取 xlsx 文件 但在处理通过 Excel 格式化为自定义 yyyy mm dd hh mm ss 的日期列时遇到一些问题 所有这些日期都显示为大浮点值 以下是在上传时读
  • 从已发布的 Google 文档电子表格中删除页眉和页脚 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我找到了用于删除 Google 文档电子表格上的网格线的 JavaScript 解决方案 使用 下载为 HTML 然后在网址栏中使用 Ja
  • 如何获取具有不同命名空间的元素

    我希望获取下面 xml 的元素名称 我的请求中的问题是我想获取有效负载元素 为此我使用了这个表达 name env Payload 所以我得到这个结果环境 有效负载
  • PyInstaller 隐藏导入

    我有一个完全运行的 Python 程序 它使用以下导入 import json import requests from natsort import natsorted 但是 当我尝试使用 PyInstaller 将其编译为可执行文件时
  • 有没有办法在 Travis CI 中访问和查看 html 报告以进行 Maven 测试?

    有没有办法在 Travis CI 中访问和查看 html 报告以进行 Maven testng 测试 目前 Travis CI 日志是我查看通过 失败 跳过的测试数量等的唯一方法 像这样的事情 测试运行 34 失败 0 错误 0 跳过 0
  • QMake:使用相对路径引用库

    我有一个使用 SQLite 的 Qt 项目 所以我有以下目录结构 C Workspace MyProject MyProject pro C Workspace MyProject sqlite3 sqlite3 lib 添加带有绝对路径的
  • 隐藏 asp.net WebMethod 返回的异常的堆栈跟踪?

    我在我的 aspx 页面中使用带有属性 WebMethod 的方法 我不使用任何 asp net ajax 而是使用 jQuery 来调用这些方法并返回 JSON 中的对象 这一切都很好 接下来 我在 webMethod 内添加了授权检查
  • 随机大小的网格的纹理重复

    我需要一些关于 Three js 中纹理的帮助 我有多个块 每个块都有随机的宽度 高度 我需要对它们应用相同的纹理 但沿整个块重复 正如我从另一个答案中看到的 我可以使用以下代码设置纹理重复 lavaTexture wrapS lavaTe
  • 表单提交后标题位置未重定向

    您好 我的表单在提交后没有重定向到我的成功页面 该消息确实通过了 我确实收到了测试电子邮件 但是 我的表单在发送电子邮件后不会重定向 我正在使用标头位置来重定向 谁能帮我这个 require once class phpmailer php
  • 何时使用存储过程而不是使用任何带有编程逻辑的 ORM?

    大家好 我想知道什么时候我应该更喜欢编写存储过程而不是编写编程逻辑和使用 ORM 或其他东西提取数据 存储过程在服务器端执行 这意味着处理大量数据不需要通过网络连接传递这些数据 此外 通过存储过程 您可以构建一致的复杂业务逻辑 比如说 您每
  • 以编程方式发布表单并没有执行我的浏览器正在执行的操作。为什么?

    我正在尝试以编程方式在不属于我的网站上提交表单 我正在尝试模拟使用网络浏览器手动执行的操作 我正在使用 HTTP 库发出 HTTP POST 请求 由于我不知道 当我以编程方式提交表单时 与在网络浏览器中手动提交相比 我得到了不同的结果 错
  • 将 COMP-3 压缩十进制字段解释为数值

    我正在创建一个 SSIS 包来从一系列抄写本文件中读取解压数据 我不确定以下字段定义的正确解释 希望有人知道 FIELD NAME 1 PIC S9 15 V9 3 COMP 3 FIELD NAME 2 PIC S9 3 V9 8 COM
  • 在rails中,如何确定记录是否被依赖的: :destroy 回调销毁?

    我的 Rails 应用程序中有一条记录after destroy需要知道记录被破坏的原因的钩子 更具体地说 如果该记录由于其父记录而被级联销毁dependent destroy 它需要采取与单独销毁记录不同的方式 我想做的是看看它的父母是否
  • SQL选择连接帮助

    我在找出针对此场景的查询时遇到问题 我想在这个查询中使用两个表 它们是这样的 Units ID Other Data People ID UnitID lt fk to Units Other Data 这就是我想做的 我想选择人员表中没有
  • 构建 Qt 应用程序时出现“/usr/bin/ld: 找不到 -lGL”

    我昨天安装了 Linux Debian 然后安装了最新的 Qt 版本 今天我安装了gcc和g 但问题是 当我创建 GUI 应用程序时它不会构建和运行 每当我创建一个新项目时 选择 gui 甚至不更改任何未编译的内容 我会收到以下消息 usr
  • 将静态库链接到共享对象时,__attribute__((used)) 无效(android gcc 4.8)

    我正在将一些东西移植到 Android 并且我有几个应该链接到 so 文件中的静态库 使用 Android NDK 我尝试使用 Wl whole archive到链接器 并由适当的终止 Wl no whole archive 但出现错误 例
  • 如何通过维护其他配置在现有 Eclipse 中设置 Struts 2?

    我是一个新手程序员 正在使用阿帕奇Struts 2 http struts apache org MVC 框架 我想在现有的 Eclipse IDE 中设置 Struts 2 并且不想损害我在 Eclipse 中所做的其他不同工作 以下是我
  • java中连续重复字符的替换

    我正在研究 Twitter 数据标准化 Twitter 用户经常使用 ts I looooooove it 之类的术语来强调 爱 这个词 我想通过替换重复字符来将这些重复的字符转换为正确的英语单词 直到我得到一个正确的有意义的单词 我知道我
  • Python脚本判断一个目录是否是git仓库

    我刚刚开始使用 Python 我的第一个任务是编写一个脚本来确定它运行的目录是否是 git 存储库 一位同学建议了这段代码 usr bin env python from subprocess import Popen PIPE STDOU