2015-01-21 67 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

相關問題