【问题标题】:Python - Creating a file works in PyScriptor but not IDE?Python - 创建文件在 PyScriptor 中有效,但在 IDE 中无效?
【发布时间】:2013-06-24 14:57:20
【问题描述】:

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

【问题讨论】:

  • 它不会在 PyScripter 中引发错误。但是,请尝试在同一缩进处粘贴行以查看错误,尤其是第一行。
  • 要获取错误消息,请从命令行运行脚本,即python /path/to/script.py

标签: python permissions


【解决方案1】:

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

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

【讨论】:

  • 对不起,我试图记住代码,显然弄错了,我已经在原始帖子中进行了更改。我检查以确保这不是实际文件中的问题,并且我做对了。
【解决方案2】:

您的 IDE 运行所在的任何地方的权限都可能是您不可写的。

检查:

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

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

【讨论】:

  • 我将代码更改为使用 C:/Users/... 的绝对目录,现在可以正常使用了,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 2018-11-01
  • 1970-01-01
  • 2018-07-05
相关资源
最近更新 更多