如何在Python中删除本地文件夹的内容?
目前的项目适用于Windows,但我也希望看到*nix.
在Python中,当shutil.rmtree在包含只读文件的文件夹上运行时,将打印以下异常:
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 221, in rmtree
onerror(os.remove, fullname, sys.exc_info())
File "C:\Python26\lib\shutil.py", line 219, in …Run Code Online (Sandbox Code Playgroud) 我试图让python删除一些目录,我得到访问错误.我认为它的python用户帐户没有权限?
WindowsError: [Error 5] Access is denied: 'path'
Run Code Online (Sandbox Code Playgroud)
是我运行脚本时得到的.
我试过了
shutil.rmtree
os.remove
os.rmdir
Run Code Online (Sandbox Code Playgroud)
他们都返回相同的错误.
我想shutil.rmtree在Python中使用删除目录.有问题的目录包含一个.git控制目录,git标记为只读和隐藏.
只读标志导致rmtree失败.在Powershell中,我会"强制"强制删除只读标志.Python中有相应的东西吗?我真的不想两次走完整棵树,但onerrorrmtree 的论据似乎没有重试这个操作,所以我不能用
def set_rw(operation, name, exc):
os.chmod(name, stat.S_IWRITE)
shutil.rmtree('path', onerror=set_rw)
Run Code Online (Sandbox Code Playgroud) 所以我正在构建一个简单的脚本,将某些文档备份到我的第二个硬盘驱动器(你永远不知道会发生什么!)。因此,我使用该shutil.copytree功能在第二个驱动器上复制了我的数据。它工作得很好,这不是问题。
shutil.rmtree如果目标已经存在,我使用该函数删除树。我将向您展示我的代码:
import shutil
import os
def overwrite(src, dest):
if(not os.path.exists(src)):
print(src, "does not exist, so nothing may be copied.")
return
if(os.path.exists(dest)):
shutil.rmtree(dest)
shutil.copytree(src, dest)
print(dest, "overwritten with data from", src)
print("")
overwrite(r"C:\Users\Centurion\Dropbox\Documents", r"D:\Backup\Dropbox Documents")
overwrite(r"C:\Users\Centurion\Pictures", r"D:\Backup\All Pictures")
print("Press ENTER to continue...")
input()
Run Code Online (Sandbox Code Playgroud)
如您所见,一个简单的脚本。现在,当我第一次运行脚本时,一切都很好。图片和文档复制到我的D:驱动器就好了。但是,当我第二次运行时,这是我的输出:
C:\Users\Centurion\Programming\Python>python cpdocsnpics.py
D:\Backup\Dropbox Documents overwritten with data from C:\Users\Centurion\Dropbox\Documents
Traceback (most recent call last):
File "cpdocsnpics.py", line 17, in <module>
overwrite(r"C:\Users\Centurion\Pictures", r"D:\Backup\All Pictures")
File "cpdocsnpics.py", line 10, in overwrite
shutil.rmtree(dest)
File …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)
任何有关此问题的帮助将不胜感激。