GitPython 限制对文件的访问?

问题描述 投票:0回答:0

一般来说,我是 GitPython 和 Github 的新手。

我想用python下载一个git仓库,然后删除除我需要的文件夹以外的所有内容。我有可以使用

os
git
模块执行此操作的代码。但是,每当我尝试使用
os.remove()
删除文件时,我都会得到
PermissionError: [WinError 5] Access is denied: 'C:\\path\\to\\repo\\.git'
,其中
.git
是它尝试删除的第一个文件。此外,即使我在手动清空父文件夹后尝试删除它,我也会遇到同样的错误。我们称这个父文件夹为
parent
。我觉得这特别奇怪,因为该程序实际上是
parent
如果它不存在的话。这是代码:

from git.repo.base import Repo
import os

items_path = os.path.join(os.getcwd(), 'parent')

if not os.path.exists(items_path):
    os.mkdir(items_path)
else:
    dirs = os.listdir(items_path)
    for item in dirs:
        os.remove(os.path.join(items_path, item))

Repo.clone('https://github.com/******', items_path)

dirs = os.listdir(items_path)
for item in dirs:
    if item != 'items':
        os.remove(os.path.join(items_path, item))

另外值得注意的是无论使用哪个

for item in dirs
循环,都会抛出同样的错误。这意味着即使程序终止并重新启动后,问题仍然存在。

python windows git
© www.soinside.com 2019 - 2024. All rights reserved.