一般来说,我是 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
循环,都会抛出同样的错误。这意味着即使程序终止并重新启动后,问题仍然存在。