2015-01-21 69 views
-1

当试图写一个文件,我可以在任何下列条件适用得到同样的错误:原因Python的IO错误的:[错误13]许可被拒绝

  1. 该文件存在,并标记为只读。

  2. 我没有该文件夹的写入权限,因此无法创建 文件。

  3. 该文件已在另一个进程中打开。

有什么办法可以将上述三个原因分开吗?如果没有,那么我会 说这是一个非常糟糕的设计。

+1

也许检查文件权限并缩小可能的情况。 – abstractpaper 2015-01-21 06:11:07

回答

0

因为基本问题是“你不能这样做”,但是细节包含在异常实例中(或者在较老的pythons中的字符串中),所以如果您将问题处理为以下内容,您将获得相同的Exception

try: 
    outfile = open('somename.txt', 'w') 
except IOError, e: 
    print "Not allowed", e 

您将获得更多信息。 (N.B.如果您正在运行python 3,则需要在上面的打印中添加括号)。

这实际上是非常好的设计 - 你的基本问题是有一个问题 - 你可以找到更多,如果你关心 - 你可以以一般化的方式处理给定类别的问题。

+0

Steve - 你错了。这里是我的代码: – 2015-01-30 05:47:00

+0

这里是我的代码: 尝试: OUT =开放( 'test.txt的', 'W') OUT.write( '垃圾') OUT.close() 除了IO错误的EX: 打印(“不允许,因为%s。”%ex) 如果文件test.txt被标记为只读,我会收到以下错误消息: 不允许,因为[错误13]权限被拒绝:'test。文本'。 如果test.txt被锁定,因为我已经在Microsoft Word等应用程序中打开了它,那么我会得到完全相同的错误消息。所以,我重申我的立场,这是一个糟糕的设计。 – 2015-01-30 05:52:48

+0

我希望别人也许能够加入这个讨论。 – 2015-02-06 23:24:33

相关问题