python csv2libsvm.py: AttributeError: '_csv.reader' 对象没有属性 'next'

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/42767250/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-19 22:08:15  来源:igfitidea点击:

python csv2libsvm.py: AttributeError: '_csv.reader' object has no attribute 'next'

pythoncsvlibsvm

提问by Zoya

I want to convert a csv file into sparse format file with csv2libsvm.py (https://github.com/zygmuntz/phraug/blob/master/csv2libsvm.py).

我想使用 csv2libsvm.py ( https://github.com/zygmuntz/phraug/blob/master/csv2libsvm.py)将 csv 文件转换为稀疏格式文件。

The CSV file contains 37 attributes + the label (last column). it doesn't contain header or index. Exp of the 1st row: 63651000000.0,63651000000.0,153.1,0,0,0,0,0,0,5,1,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1

CSV 文件包含 37 个属性 + 标签(最后一列)。它不包含标题或索引。第一行的 Exp: 63651000000.0,63651000000.0,153.1,0,0,0,0,0,0,5,1,0,4,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1

When entring the following command line : python csv2libsvm.py Z.csv data.txt 38 1

输入以下命令行时: python csv2libsvm.py Z.csv data.txt 38 1

I got the following error:

我收到以下错误:

Traceback (most recent call last):
  File "csv2libsvm.py", line 47, in <module>
    headers = reader.next()
AttributeError: '_csv.reader' object has no attribute 'next'

Do you have any idea about the problem ?

你对这个问题有什么想法吗?

回答by Hossein

This is because of the differences between python 2 and python 3. Use the built-in function nextin python 3. That is, write next(reader)instead of reader.next()in line 47. In addition, you should open the file in the text mode. So, change line 47 as i = open( input_file, 'r' ).

这是因为python 2和python 3的不同。使用python 3中的内置函数next。即写next(reader)而不是reader.next()在第47行。另外,您应该以文本模式打开文件。因此,将第 47 行更改为i = open( input_file, 'r' )

回答by Solution Spirit

For Python 3.x:

对于 Python 3.x:

Use next(reader)instead of reader.next()

使用next(reader)代替reader.next()