迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python 中错误 IOError: [Errno 13] Permission Denied

作者:迹忆客 最近更新:2023/07/06 浏览次数:

发生 IOError 是很常见的,因为我们人类主要与计算机的 GUI 进行交互; 我们从视觉上了解文件夹、文件、压缩文件或应用程序之间的区别。

我们经常与文件夹、文件、压缩文件或应用程序进行交互,以至于现在我们的大脑有时无法区分这些文件。

但另一方面,你必须将所有内容输入计算机,它们不仅仅理解视觉效果; 相反,您必须提供完整的详细信息。


什么是Python文件处理中 IOError: [Errno 13] Permission denied

在文件处理中,您需要提供要访问的文件的完整路径; 否则,您将得到 IOError。 如果您想打开文件但提供了文件夹的路径,您将面临 IOError: [Errno 13] Permission denied

下面是 Python 中错误的代码示例。

# opening file
f = open("E:\Projects\Test_folder", "r")

输出:

PermissionError: [Errno 13] Permission denied: 'E:\\Projects\\Test_folder'

在上面的示例中,我们尝试以读取模式打开 Test_folder,但这引发了 PermissionError:[Errno 13] Permission denied


如何修复 Python 中的 IOError:[Errno 13] Permission denied

要解决此问题,您需要输入要访问的文件的正确路径,而不是文件夹的路径。 假设 Test_folder 中有两个文件。

import os
# Folder Path
folder_path = "E:\Client Project Report\Test_folder"

# display all files in a folder
print(f"All files in the Test_folder are\n{os.listdir(folder_path)}")

# file path
file_path = "E:\Client Project Report\Test_folder\Test_file_1.txt"

# read file
f = open(file_path, "r")
print(f"\n{f.read()}")

# file closed
f.close()

输出:

All files in the Test_folder are
['Test_file_1.txt', 'Test_file_2.txt']

Hi There!
This is test file 1

提供文件路径后,错误已解决。 另外,在 Python 中关闭打开的文件是一种很好的做法,这样没有人可以进一步读取和写入该文件,直到并且除非再次打开该文件,并且如果您尝试写入或读取已关闭的文件,则会引发 ValueError

虽然当文件的引用对象被分配给另一个文件时Python会自动关闭该文件。 但是,使用 close() 函数关闭文件仍然是一个好习惯。

此外,您还可以使用 try-catch 块等异常处理机制来捕获此类错误并防止程序崩溃。


如何在 Python 中使用 chmod 命令更改文件的权限

正如所讨论的,当您尝试打开不允许的文件时,会出现 IOError: [Errno 13] Permission Denied

假设你想打开一个不允许你访问的文件夹,但你仍然尝试用Python编写脚本来打开该文件夹,访问该文件夹的权限将被拒绝,Python编译器将抛出错误 。

要解决此错误,我们可以使用 chmod 命令,它代表更改模式。 chmod() 需要两个参数,即要访问的文件/文件夹的路径和文件模式。

chmod 命令用于更改文件的文件权限,它是通过更改特定文件的权限标志来完成的。

权限标志由三位八进制值表示,用于指定文件所有者、文件组和所有其他用户的读、写和执行权限。

chmod 的语法:

chmod(path,mode)

该命令有两个参数:

  1. 第一个是要更改其权限的文件的路径。
  2. 第二个是你要设置的权限。

假设您想授予每个人对名为 filename 的文件的读写权限; 您将使用以下命令。

chmod 777 filename

上述命令的 Python 脚本为:

import os
os.chmod('my_file', 0o777)

这段代码也可以表示为:

import os
import stat
path = ('E:\Project\file1.txt')

# stat.S_IRWXU --> All permissions (Read, write, and execute) to the owner
# stat.S_IRWXG --> All permissions (Read, write, and execute) to group
# stat.S_IRWXO --> All permissions (Read, write, and execute) to others

print(os.chmod(path, stat.S_IRWXU|stat.S_IRWXG|stat.S_IRWXO))

这将授予每个人特定文件的读、写和执行权限。

chmod 中的三个八进制数代表什么

文件的权限可以使用八进制数表示。 八进制数由三位数字组成,每一位代表不同的权限。

  1. 第一个数字代表所有者的许可。
  2. 第二个数字代表该组的权限。
  3. 第三位数字代表其他人的权限。

可以使用 chmod 命令更改文件的权限,其中的八进制数代表所需的权限。

例如,要授予文件所有者读取、写入和执行权限,而仅授予组和其他人读取和执行权限,可以使用八进制数 755。

上一篇:Python 中 TypeError: Unhashable Type: Slice 错误

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

解决 Python 中 TypeError: Module Object Is Not Callable 错误

发布时间:2023/07/07 浏览次数:131 分类:Python

本文将讨论 TypeError: 'module' object is not callable。 当类/方法和模块具有相同的名称时,就会出现此错误; 由于名称相同,我们会混淆它们。Python 中 TypeError: 'module' object is not callable 的原因

Python 中错误 IO.UnsupportedOperation: Not Writable

发布时间:2023/07/07 浏览次数:106 分类:Python

本篇文章将介绍 Python 中的 io.UnsupportedOperation: not writable 错误及其修复方法。修复 Python 中的 io.UnsupportedOperation: not writable 错误 当我们尝试对以读取模式打开的文件执行写入操作时,会导致此错

Python 中错误 ImportError: DLL Load Failed

发布时间:2023/07/07 浏览次数:69 分类:Python

通过这个解释,我们将了解 ImportError: DLL load failed 并了解发生这种情况的不同原因。 我们还将学习如何在 Python 中解决这个问题。

修复Python中错误 TypeError: Int Object Is Not Iterable

发布时间:2023/07/07 浏览次数:160 分类:Python

本篇文章将介绍如何修复 Python 中的 TypeError: 'int' object is not iterable 错误。修复 Python 中的 TypeError: Int Object Is Not Iterable 错误 让我们看一个 Python 中的 TypeError 异常的示例。

Python 中错误 ValueError: Not Enough Values to Unpack

发布时间:2023/07/07 浏览次数:118 分类:Python

本文将通过示例详细介绍每个场景,但在此之前,让我们先了解一下 Python 中的 ValueError 是什么。Python 中的 ValueError 是什么ValueError: not enough values to unpack (expected 3, got 2)

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便