当前位置: 首页 > 面试题库 >

AttributeError:“ _ io.TextIOWrapper”对象没有属性“ next” python

柯清野
2023-03-14
问题内容

我正在使用python 3.3.3。我正在从tutorialspoint.com做本教程。我无法理解此错误是什么。

这是我的代码:

fo = open("foo.txt", "w")
print ("Name of the file: ", fo.name)

# Assuming file has following 5 lines
# This is 1st line
# This is 2nd line
# This is 3rd line
# This is 4th line
# This is 5th line

seq = ["This is 6th line\n", "This is 7th line"]
# Write sequence of lines at the end of the file.
fo.seek(0, 2)
line = fo.writelines( seq )

# Now read complete file from beginning.
fo.seek(0,0)
for index in range(7):
 #  line = fo.next()
   print ("Line No %d - %s" % (index, line)+"\n")

# Close opend file
fo.close()

错误:

Name of the file:  foo.txt
Traceback (most recent call last):
  File "C:/Users/DELL/Desktop/python/s/fyp/filewrite.py", line 19, in <module>
    line = fo.next()
AttributeError: '_io.TextIOWrapper' object has no attribute 'next'

问题答案:

您在这里遇到问题有两个原因。第一个是您fo以只写模式创建的。您需要一个可以读写的文件对象。您还可以使用with关键字在完成处理后自动销毁文件对象,而不必担心手动关闭它:

# the plus sign means "and write also"
with open("foo.txt", "r+") as fo:
    # do write operations here
    # do read operations here

第二个是(就像您非常强烈地指出的错误一样)文件对象fo(文本文件对象)没有next方法。您正在使用针对Python
2.x编写的教程,但您正在使用Python3.x。这对您来说并不顺利。(我相信nextwas /也许在Python
2.x中有效,但在3.x中无效。)相反,与nextPython 3.x最类似的是readline,如下所示:

for index in range(7):
    line = fo.readline()
    print("Line No %d - %s % (index, line) + "\n")

请注意,这仅在文件至少有7行时有效。否则,您将遇到异常。一个遍历文本文件的更安全,更简单的方法是使用for循环:

index = 0
for line in file:
    print("Line No %d - %s % (index, line) + "\n")
    index += 1

或者,如果您想获得更多的pythonic,可以使用enumerate函数:

for index, line in enumerate(file):
    print("Line No %d - %s % (index, line) + "\n")


 类似资料:
  • 问题内容: 我有一个文本文件,我们称之为它,我想加载它并创建一个包含文本文件中每一行的列表。 我尝试使用这样的过程: 为什么会出现这些错误?那不是我的用法吗?(我正在使用) 问题答案: 您正在打开文件对象上使用方法。 您可以通过简单地调用文件对象来将文件读取为行列表: 这 确实 包括换行符。您可以剥离列表理解中的那些:

  • 问题内容: 我想转换火花数据框架以使用以下代码添加: 详细的错误消息是: 有人知道我在这里做错了吗?谢谢! 问题答案: 您无法使用数据框,但可以将数据框转换为RDD并通过映射将其映射。在Spark 2.0之前,别名为。使用Spark 2.0,您必须先明确调用。

  • 问题内容: 我如何解决此错误,我是从GitHub下载此代码的。 引发错误 请帮我解决这个问题! 我用了: 我得到这个错误。有人帮我,我只想让它工作为什么这么难? 问题答案: 我怀疑您从中复制代码的地方启用了急切执行功能,即在程序开始时调用了该位置。 您也可以这样做。希望能有所帮助。 更新:请注意,默认情况下,TensorFlow 2.0中启用了急切执行。因此,以上答案仅适用于TensorFlow

  • 问题内容: 下面的代码给出了错误: 码: 问题答案: 从代码中,我可以看到你希望允许用户下载pdf。 现在开始 去 http://localhost:5000

  • 问题内容: 当我尝试时,会发生错误: 我找到了带有pyelasticsearch.py 的链接https://github.com/toastdriven/pyelasticsearch/blob/master/pyelasticsearch.py​​#L424-469,但我不知道它是哪个版本。无论如何,该代码中没有购买我的pyelasticsearch.py​​。任何人都有相同的经历吗?感谢您的

  • 我和cloud composer一起策划了两个数据流工作,它已经工作了一个月了。突然,这两个作业停止工作,并出现以下错误消息: 在作业中,我用存储客户端从google cloud storage下载一个文件。我以为这是因为一些依赖问题。在composer环境中,我安装了google-cloud-storage,但没有指定版本。我尝试指定包的不同版本,但似乎没有任何工作。 谢了!