当我尝试使用以下代码在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"
答案 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')
)来解决这个问题。