2013-06-24 35 views
0

當我嘗試使用下面的代碼在PyScriptor中創建一個新文件時,它完美地工作,沒有任何錯誤,但是當我在PyScriptor之外使用相同的代碼時,例如在IDE中,它只是閃爍一個錯誤並關閉。Python - 創建一個文件在PyScriptor中工作,但不是IDE?

file = open("file.txt", "w") 
file.write("hello") 
file.close() 

我無法獲取錯誤,因爲錯誤消息在解釋器關閉前持續少於一秒。

有助於弄清楚爲什麼會發生這種情況,以及如何解決它是值得讚賞的。

我在Windows 7上使用Python版本2.5.3.0,如果這有幫助。

[編輯]

感謝kirbyfan64sos和JAB幫助我得到的錯誤。事實證明,Python根本沒有權限打開任何文件(r,w,a等),但Pyscriptor具有所有這些權限,因此問題仍然存在:爲什麼它們會不同,我如何解決它們?

我知道它不是文件本身的權限,否則它不會在Pyscriptor中工作。

[ERROR CODE]

Traceback (most recent call last): 

    File "IDE File test.py", line 1, in <module> 

    file = open("file.txt", "w") 

IOError: [Errno 13] Permission denied: "file.txt" 
+0

它不會在PyScripter中拋出錯誤。但是,嘗試粘貼相同的縮進行來查看錯誤,尤其是第一行。 – shahkalpesh

+0

要獲取錯誤消息,請從命令行運行腳本,即「python/path/to/script.py」。 – refi64

回答

0

無論您的IDE在哪裏運行,您都無法寫入機會。

檢查:

import os 
print(os.path.abspath(os.curdir)) 

我很肯定的是,你會發現,這取決於你IDE從運行當前的路徑是不同的。大多數IDE都有一個設置,您將從哪條路徑開始。你也可以通過使用os.chdir來改變你的主目錄(或者給出絕對路徑open(),例如open('/home/wayne/test.txt', 'w')

+0

我改變了使用C:/ Users/...的絕對目錄的代碼,現在它工作正常,謝謝! – KHowlett

1

使用"w"代替"W""W"是無效的文件模式。另外,file.close應該是file.close(),因爲file.close將只返回file對象的close方法,並且不會實際調用它。

請注意,如果您從命令shell內部啓動解釋器,那麼當發生錯誤時,shell將不會關閉,因此您將能夠在此處看到它。這同樣適用於使用IDLE。

+0

對不起,我試圖記住代碼,顯然是錯的,我在原文中做了修改。我檢查了一下,以確保它不是實際文件中的問題,而且我認爲它是正確的。 – KHowlett

相關問題