0

当我尝试使用以下代码在 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"
4

2 回答 2

1

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

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

于 2013-06-24T15:01:11.357 回答
0

很有可能您的 IDE 运行的任何地方的权限都不能由您写入。

去检查:

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

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

于 2013-06-25T19:24:24.250 回答