PermissionError:[Errno 13]在python中


82

刚开始学习一些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文件如何工作,但是我以Admin身份登录Windows,并且该文件夹具有admin权限。

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


7
Test文件还是文件夹?
约阿希姆·伊萨克森

1
@JoachimIsaksson绝对是一个文件夹,我们可以在错误行的末尾看到。做出答案。
Oleh Prypin

Test是一个文件夹,随后的文档会读取,我可以使用以下语法打开文本文档a_file = open('E:\ Python Win7-64-AMD 3.3 \ Test \ a.txt',encoding ='utf-8' )使用此语法以及a_file = open('E:\ Python Win7-64-AMD 3.3 \ Test',encoding ='utf-8')也给我相同的错误。
BenniMcBeno 2012年

顺便说一句,请记住对Windows路径名使用原始字符串,否则,如果子文件夹名称碰巧以nb或任何其他可能属于转义序列的字母开头,则会被人
咬烂

好的,所以文件在闪存驱动器上,闪存驱动器是FAT32,而我的HD是NTFS,所以它是格式冲突> <在本地进行工作很好,谢谢
BenniMcBeno 2012年

Answers:


64

做的时候

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前缀)字符串,以确保您的路径中不包含任何转义字符,这样\n会将其转换为特殊字符。

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

一个对我来说很好的Roger幸运的是,除了现在大声笑,我几乎一直在Linux上运行,<>,所以你建议我这样做。btw Test是一个文件夹/目录
BenniMcBeno 2012年

2
@bennyboy取决于您通过打开目录而不是文件来实现的目标...?
约阿希姆·伊萨克森

15

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


我需要在打开的Excel文件上写(因为它具有执行python脚本的宏),您如何处理它?
胜利者

我的熊猫在open(filename,“ rb”)上失败,关闭Excel解决了该问题,但是为什么呢?
Niels Tolstrup

0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.