2013-06-24 36 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

相关问题