【问题标题】:PermissionError Errno 13 Permission deniedPermissionError Errno 13 权限被拒绝
【发布时间】:2018-11-18 10:17:16
【问题描述】:

我正在尝试使用 python 读取包含 html 文件的目录。我使用的代码是这样的:

    import os
f = open(r"C:\Users\Grty\Desktop\de", "w+")
for filename in os.listdir(os.getcwd()):
  content = f.read()
  print (filename, len(content))

问题是我无法访问该目录。我尝试了不同的位置,但问题仍然存在。我也做了相对的 chmod 777 (使用 Windows 10),但仍然没有。我启用了与所有人共享,向所有人授予读/写权限,还禁用了“只读”(不知何故正在重新启用)。我也以管理员身份运行了 cmd,但仍然没有任何进展。有人知道如何克服这个问题吗?

【问题讨论】:

    标签: python html permissions


    【解决方案1】:

    您正在尝试打开一个文件夹进行写入:

    f = open(r"C:\Users\Grty\Desktop\de", "w+")
    

    但这是一个文件夹,即使在"r" 模式下也无法使用open() 打开,因为它不是文件,如果您尝试,Windows 会提示访问被拒绝。当你得到每个filename时,打开它:

    for filename in os.listdir(os.getcwd()):
        with open(filename) as f:
            content = f.read() 
    

    【讨论】:

    • 它是一个 Windows 文件系统这一事实几乎是无关紧要的——你也不能在 Linux 中open() 一个目录(但错误消息更准确:“[Errno 21] 是一个目录”)