【问题标题】:Cant remove file using os.remove无法使用 os.remove 删除文件
【发布时间】:2019-08-23 07:54:25
【问题描述】:

目前 os.remove() 有一些问题。该文件未打开,我拥有编辑和删除文件的完全权限(并且可以在 python 之外执行此操作)但是从 python 本身内部拒绝访问。代码有问题还是 spyder 本身有问题?

编辑:使用回溯更新 EDIT2:我刚刚手动删除了几个文件夹,其余的运行良好,我不确定是什么问题,但至少现在可以工作了!

import os
import traceback

rootDir = r"......"
for dirName, subdirList, fileList in os.walk(rootDir):
 for filename in fileList:
        try:
            if filename[0:3] == "New":
                if (filename[3:] in fileList):
                    path = os.path.join(rootDir, filename[3:])
                    os.remove(path)
        except Exception:
            traceback.print_exc()
            errorlist.append(filename)
__________________________________________________________________________________
Traceback (most recent call last):
  File "...", line 31, in <module>
    os.remove(item)
PermissionError: [WinError 5] Access is denied: '...'

【问题讨论】:

  • 请显示错误的完整回溯。

标签: python-3.x operating-system file-management


【解决方案1】:

我不知道您的目录结构,但加入path = os.path.join(rootDir, filename[3:]) 时可能存在一些相对目录问题?

如果没有,你能复制你的异常跟踪吗?

【讨论】:

  • 路径正确,将它们全部打印出来输入到 Windows 资源管理器栏中工作正常
【解决方案2】:

先更改权限。

os.chmod(filePath, 0777)
os.remove(filePath)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-07
    • 2020-06-22
    • 2021-10-09
    • 2021-12-22
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多