【问题标题】:Open() Requires Integer?Open() 需要整数?
【发布时间】:2018-07-05 21:29:43
【问题描述】:

代码如下:

file=open('cake.txt','w')

出现以下情况:

Traceback (most recent call last):
  File "<pyshell#19>", line 1, in <module>
open('cake.txt','w')
TypeError: an integer is required (got type str)

这种语法在 3.6 版本上运行良好,现在我升级到 3.7 时就不行了。这里发生了什么?顺便说一句,“cake.txt”文件不存在。

python 文档也没有帮助。

【问题讨论】:

  • 你是否定义了一个名为open的函数?
  • 您是否在交互式会话中运行此程序?是否有可能您之前执行了def open(…),或者from &lt;something&gt; import * 没有意识到要导入something.open? (只需执行del open 即可测试和修复其中任何一个。)
  • 这本书说你只需调用 open(name,mode) 就可以了。我使用 from os import * 仍然出现同样的错误。然后我切换到 import os 并且工作正常。

标签: python syntax flags python-3.7


【解决方案1】:

好吧,如果你这样做了:

from os import *

您已将 open 替换为 os.openflags 将是 int,您尝试在其中传递 mode,但实际上可能不是您想要的功能。

有大量的open 函数和方法。最好小心使用通配符导入(一般而言)。

(尤其是在交互式会话中)您还可以输入 help(open),这应该可以让您很好地了解您正在处理的 open 是什么。


社区 wiki 回答反映了 cmets...随时改进。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-08
    • 2015-11-22
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    相关资源
    最近更新 更多