2024-05-19 02:50:25 发布
网友
shutil.rmtree不会删除Windows上的只读文件。有一个与“rm-rf”等价的python吗?为什么?为什么这么痛?
shutil.rmtree
另一种方法是将Windows上的rmtree定义为
rmtree = lambda path: subprocess.check_call(['cmd', '/c', 'rd', '/s', '/q', path])
shutil.rmtree可以使用一个错误处理函数,当它在删除文件时遇到问题时将调用该函数。您可以使用它强制删除有问题的文件。
灵感来自http://mail.python.org/pipermail/tutor/2006-June/047551.html和http://techarttiki.blogspot.com/2008/08/read-only-windows-files-with-python.html:
import os import stat import shutil def remove_readonly(func, path, excinfo): os.chmod(path, stat.S_IWRITE) func(path) shutil.rmtree(top, onerror=remove_readonly)
(我还没有测试过这个片段,但它应该足以让你开始)
如果从PyWin32导入win32api,可以使用:
win32api.SetFileAttributes(path, win32con.FILE_ATTRIBUTE_NORMAL)
使文件不再是只读的。
另一种方法是将Windows上的rmtree定义为
shutil.rmtree
可以使用一个错误处理函数,当它在删除文件时遇到问题时将调用该函数。您可以使用它强制删除有问题的文件。灵感来自http://mail.python.org/pipermail/tutor/2006-June/047551.html和http://techarttiki.blogspot.com/2008/08/read-only-windows-files-with-python.html:
(我还没有测试过这个片段,但它应该足以让你开始)
如果从PyWin32导入win32api,可以使用:
使文件不再是只读的。
相关问题 更多 >
编程相关推荐