Python - 创建文件在PyScriptor中工作但不在IDE中工作?

时间:2013-06-24 14:57:21

标签: python permissions

当我尝试使用以下代码在PyScriptor中创建一个新文件时,它完美无缺,但是当我在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中不起作用。

[错误代码]

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"

2 个答案:

答案 0 :(得分:1)

使用"w"代替"W""W"是无效的文件模式。另外,file.close应为file.close(),因为file.close只会返回file对象的close方法,并且实际上不会调用它。

请注意,如果从命令shell内部启动解释器,则在引发错误时shell不会关闭,因此您可以在那里看到它。这同样适用于使用IDLE。

答案 1 :(得分:0)

运行IDE的任何地方的权限都是您无法写入的。

检查:

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

我很确定您会发现当前路径会有所不同,具体取决于您运行的IDE。大多数IDE都有一个设置,您可以从哪个路径开始。您也可以使用os.chdir更改为您的主目录(或提供open()的绝对路径,例如open('/home/wayne/test.txt', 'w'))来解决这个问题。