运行以下代码时出现此错误。我的代码没有发现任何问题。谁能帮我吗?
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**
答案 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