获取“ AttributeError:'_ io.TextIOWrapper'对象没有属性'next'”错误

时间:2018-08-31 19:04:55

标签: python-3.x

运行以下代码时出现此错误。我的代码没有发现任何问题。谁能帮我吗?

data = open('F:\\Chapter 2\\Customer Churn Model.txt','r')
col = data.next().strip().split(',')
no_col = len(data.next().strip().split(','))
print(no_col)strong text**

2 个答案:

答案 0 :(得分:0)

Python 3.x中的文件对象不支持next()方法。仅Python 2.x支持。这是解释此内容的链接:https://www.tutorialspoint.com/python3/file_next.htm

答案 1 :(得分:0)

Yoy可以将此代码更改为上下文管理器形式:

with open('F:\\Chapter 2\\Customer Churn Model.txt','r') as data:
    col = data.readline().strip().split(',')
    no_col = len(data.readline().strip().split(','))
    print(no_col)

您的错误是由内置next实例化的_io.TextIOWrapper对象缺少open方法引起的。代替它,您应该使用readline从文件中读取一行。此方法将逐行读取文件,但是如果没有足够的行,请当心错误。

P.S。 data = open('F:\\Chapter 2\\Customer Churn Model.txt','r')字符串也是正确的,但是上下文管理器更Python化且更安全。

关于python3 next:python3中没有next方法,但是__next__由内置next()函数调用(如果已定义)。

示例:

generator = (i for i in range(10))
next(generator)

Out:
0

但这不是一个好的代码,最好使用for关键字进行迭代。文档:https://docs.python.org/3/library/functions.html#next