我想使用 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) 我目前正在开发一个项目,使用 gitpython 检查 git 存储库中的一些内容。我现在开始为我的项目编写测试,通过这样做,我意识到我需要模拟一些东西。
在这个项目中,我通过克隆存储库以及使用本地存储库来创建 git.Repo 类。我可以在我的计算机上本地运行这些测试,但不可能假设这些测试将在其他计算机上运行。
本质上,问题是,如何在 gitpython 中模拟存储库?如何“假装”存储库存在于当前计算机上的指定路径上?
您可以在下面看到需要模拟的内容:
import git
repository = git.Repo('./local_repo_path')
Run Code Online (Sandbox Code Playgroud) 正如标题所描述的,我需要使用 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)
任何有关此问题的帮助将不胜感激。