93

刚开始学习一些 Python,我遇到了如下所述的问题:

a_file = open('E:\Python Win7-64-AMD 3.3\Test', encoding='utf-8')

Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    a_file = open('E:\Python Win7-64-AMD 3.3\Test', encoding='utf-8')
PermissionError: [Errno 13] Permission denied: 'E:\\Python Win7-64-AMD 3.3\\Test\

似乎是文件权限错误,如果有人能发光,将不胜感激。

注意:不确定 Python 和 Windows 文件是如何工作的,但我以管理员身份登录到 Windows,并且该文件夹具有管理员权限。

我尝试更改.exe属性以以管理员身份运行。

4

4 回答 4

82

做的时候;

a_file = open('E:\Python Win7-64-AMD 3.3\Test', encoding='utf-8')

...您尝试将目录作为文件打开,这可能(并且在大多数非 UNIX 文件系统上)会失败。

你的另一个例子;

a_file = open('E:\Python Win7-64-AMD 3.3\Test\a.txt', encoding='utf-8')

如果您只有a.txt. 不过,您可能希望使用原始(r-prefixed)字符串,以确保您的路径不包含任何转义字符,例如\n将被转换为特殊字符的转义字符。

a_file = open(r'E:\Python Win7-64-AMD 3.3\Test\a.txt', encoding='utf-8')
于 2012-11-03T08:49:56.137 回答
31

对我来说,我正在写入一个在 Excel 中打开的文件。

于 2019-09-24T16:20:56.403 回答
2

对我来说,当我尝试将文件写入文件夹并想确保该文件夹存在时出现此错误。我不小心使用了:

path = Path("path/to/my/file.txt")
path.mkdir(parents=True, exist_ok=True)
with open(path, "w") as file:
    ...

但是第二行的意思是“在这个确切的路径上创建一个目录(并且也创建它的父目录,而不会因为它们已经存在而抛出错误)”。然后第三行抛出 a ,因为您当然不能在目录路径上使用!第二行应该是:PermissionErroropen()

path.parent.mkdir(parents=True, exist_ok=True)
于 2021-03-20T12:16:52.700 回答
0

当我不小心尝试通过命令提示符运行我的 python 模块时,我遇到了这个问题,而我的工作目录C:\Windows\System32不是我运行 python 模块的常用目录

于 2020-10-04T19:37:48.440 回答