为什么要读取 csv 文件的列两次,而最后一列是 None?

伊丽莎白

我的代码如下:

file  = open('traintag1.csv', 'r')
csv_reader = csv.reader(file)
data = [x[-1] for x in csv_reader]
print len(data)
target = [x[-2] for x in csv_reader]
print len(target)

结果是len(data)=430哪个是正确的,但len(target)=0哪个应该430len(data). 为什么长度不一样?

另外,有没有办法按列读取csvfile?

该文件包含如下数据:

7765,1256,http://hshihwih.com,0
12453,18978,http://shjhjkshd.com,1
迪内什·庞德卡

问题 :

您正面临这个问题,因为它csv_reader迭代器(请谷歌这个概念 :) )。

迭代器是具有“ next”方法可用的对象当您执行时csv_reader = csv.reader(file),它会创建csv_reader为迭代器。csv_reader.next()当时会给你一行。但是随着线路结束,没有办法重新启动它。

请检查以下:

C:\Users\dinesh\Desktop>python
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (
AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import csv
>>> file  = open('a.csv','r')
>>> csv_reader = csv.reader(file)
>>>
>>> dir(csv_reader)
['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__has
h__', '__init__', '__iter__', '__new__', '__reduce__', '__reduce_ex__', '__repr_
_', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'dialect', 'line
_num', 'next']
>>>
>>> csv_reader.next()
['7765', '1256', 'http://hshihwih.com', '0']
>>>
>>> csv_reader.next()
['12453', '18978', 'http://shjhjkshd.com', '1']
>>>
>>> csv_reader.next()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

在您的代码中,当第一次迭代data完成时,target由于我上面解释的原因,它再次无法返回

解决方案 :

在一个循环中收集数据如下:

import csv

file  = open('a.csv','r')
csv_reader = csv.reader(file)
data = []
target = []
for x in csv_reader:
    data.append(x[-1])
    target.append(x[-2])

print data
print len(data)
print target
print len(target)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 R 中读取 csv 文件并从最后一列中创建一个列表

来自分类Dev

从csv文件的一列中删除最后一个字符(无论它是什么)

来自分类Dev

读取csv文件Python时跳过第一列

来自分类Dev

程序两次读取文件的最后一行

来自分类Dev

为什么打印语句在最后打印 None

来自分类Dev

为什么我必须打开我的csv两次?

来自分类Dev

在同一目录中的多个CSV文件中删除前两列和最后一列

来自分类Dev

xml 文件的根为 NONE 为什么?

来自分类Dev

为什么第一次从HDD读取文件要慢于随后的文件?

来自分类Dev

PHP数组-从CSV文件读取,创建第一列键,第二列值

来自分类Dev

使用python覆盖csv文件中的第一列和最后一列

来自分类Dev

为什么 csv.Dictreader 只读取第一行/列?

来自分类Dev

为什么python会读取我的文件两次?

来自分类Dev

为什么list(print(x.upper(),end ='')for'spam'中的x)得到一个[None,None,None,None]列表?

来自分类Dev

python pandas不从csv文件中读取第一列

来自分类Dev

如何读取CSV并生成由Pig按第一列的值分组的json / avro文件?

来自分类Dev

读取列名称为一列单元格值的csv文件

来自分类Dev

仅在读取csv文件列表时定义一列?

来自分类Dev

如何从R中的csv文件读取一列时间以进行数学运算?

来自分类Dev

如果所有值都在同一列中,如何从 csv 文件中读取数据?

来自分类Dev

在读取 csv 文件时向数据框添加一列 [pandas]

来自分类Dev

为什么必须要执行两次Python脚本才能在CSV文件中获得完整的输出

来自分类Dev

为什么扫描程序会每隔一行读取CSV文件?爪哇

来自分类Dev

读取 csv 文件的列,并使用 Python 将每一列保存在一个变量中

来自分类Dev

为什么要两次拿东西?

来自分类Dev

DNX为什么要两次运行代码

来自分类Dev

为什么要两次声明jQuery?

来自分类Dev

为什么控制器要创建两次?

来自分类Dev

如何将csv文件中的最后一列交换为第一列?+ awk

Related 相关文章

  1. 1

    在 R 中读取 csv 文件并从最后一列中创建一个列表

  2. 2

    从csv文件的一列中删除最后一个字符(无论它是什么)

  3. 3

    读取csv文件Python时跳过第一列

  4. 4

    程序两次读取文件的最后一行

  5. 5

    为什么打印语句在最后打印 None

  6. 6

    为什么我必须打开我的csv两次?

  7. 7

    在同一目录中的多个CSV文件中删除前两列和最后一列

  8. 8

    xml 文件的根为 NONE 为什么?

  9. 9

    为什么第一次从HDD读取文件要慢于随后的文件?

  10. 10

    PHP数组-从CSV文件读取,创建第一列键,第二列值

  11. 11

    使用python覆盖csv文件中的第一列和最后一列

  12. 12

    为什么 csv.Dictreader 只读取第一行/列?

  13. 13

    为什么python会读取我的文件两次?

  14. 14

    为什么list(print(x.upper(),end ='')for'spam'中的x)得到一个[None,None,None,None]列表?

  15. 15

    python pandas不从csv文件中读取第一列

  16. 16

    如何读取CSV并生成由Pig按第一列的值分组的json / avro文件?

  17. 17

    读取列名称为一列单元格值的csv文件

  18. 18

    仅在读取csv文件列表时定义一列?

  19. 19

    如何从R中的csv文件读取一列时间以进行数学运算?

  20. 20

    如果所有值都在同一列中,如何从 csv 文件中读取数据?

  21. 21

    在读取 csv 文件时向数据框添加一列 [pandas]

  22. 22

    为什么必须要执行两次Python脚本才能在CSV文件中获得完整的输出

  23. 23

    为什么扫描程序会每隔一行读取CSV文件?爪哇

  24. 24

    读取 csv 文件的列,并使用 Python 将每一列保存在一个变量中

  25. 25

    为什么要两次拿东西?

  26. 26

    DNX为什么要两次运行代码

  27. 27

    为什么要两次声明jQuery?

  28. 28

    为什么控制器要创建两次?

  29. 29

    如何将csv文件中的最后一列交换为第一列?+ awk

热门标签

归档