小编Kur*_*orn的帖子

Python argparse 可能为空字符串值

我想使用 argparse 在我的主函数中传递一些值。在调用 python 文件时,我总是希望包含参数的标志,同时包含或排除其字符串参数。这是因为如果可能的话,调用 python 文件的一些外部代码会变得简单得多。

通过调用 parser.add_argument 添加参数时,我尝试将默认值default=None设置为并将其设置为default=''。看来我自己无法完成这项工作..

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('-p', '--projects_to_build', default='')
    args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)

此调用工作正常:

py .\python_file.py -p proj_1,proj_2,proj_3
Run Code Online (Sandbox Code Playgroud)

此调用不会:

py .\python_file.py -p

python_file.py: error: argument -p/--projects_to_build: expected one argument
Run Code Online (Sandbox Code Playgroud)

argparse python-3.x

10
推荐指数
1
解决办法
4928
查看次数

Python:模拟本地 gitpython 存储库

我目前正在开发一个项目,使用 gitpython 检查 git 存储库中的一些内容。我现在开始为我的项目编写测试,通过这样做,我意识到我需要模拟一些东西。

在这个项目中,我通过克隆存储库以及使用本地存储库来创建 git.Repo 类。我可以在我的计算机上本地运行这些测试,但不可能假设这些测试将在其他计算机上运行。

本质上,问题是,如何在 gitpython 中模拟存储库?如何“假装”存储库存在于当前计算机上的指定路径上?

您可以在下面看到需要模拟的内容:

import git
repository = git.Repo('./local_repo_path')
Run Code Online (Sandbox Code Playgroud)

mocking pytest python-3.x gitpython

5
推荐指数
1
解决办法
4066
查看次数

如何在 Windows 上的 python 中删除 git 存储库

正如标题所描述的,我需要使用 python 删除一个 git 存储库。我已经看到了关于这个主题的其他问题,但似乎没有一个解决方案对我有用。

我的工作: 我需要使用 gitpython 下载一个存储库,然后检查一些不相关的东西。该过程完成后,我需要删除存储库以节省使用我脚本的人的空间。

问题: 克隆 git 存储库时,将创建一个 .git 文件。该文件隐藏在 Windows 中,我一直使用的模块无权删除 .git 文件夹中的任何文件。

我试过的:

import shutil
shutil.rmtree('./cloned_repo')

PermissionError: [WinError 5] Access is denied:
Run Code Online (Sandbox Code Playgroud)

任何有关此问题的帮助将不胜感激。

python windows git gitpython

4
推荐指数
1
解决办法
2277
查看次数

标签 统计

gitpython ×2

python-3.x ×2

argparse ×1

git ×1

mocking ×1

pytest ×1

python ×1

windows ×1