【问题标题】:Extract a particular column from a csv [closed]从csv中提取特定列[关闭]
【发布时间】:2013-09-28 09:49:53
【问题描述】:

我有一个格式如下的 .csv 文件:

ID1    ID2    city       Country
AR     xyz    Tokyo      Japan
AR            New York   USA
AR     abc    Vienna     Austria

我想使用正则表达式从文件中提取第三列数据,因此输出将是:

Tokyo
New York
Vienna

【问题讨论】:

  • 你确定这是一个csv 文件吗? “c”代表逗号,没有任何逗号。有时人们用它来表示“分隔符分隔”,并包含分号和制表符,但您的数据似乎也没有被分隔。

标签: python csv python-3.x


【解决方案1】:

为什么不直接使用csv 模块?这可以更快。

import csv

with open('this.file') as this_file:
  source = csv.reader(this_file, delimiter=' ')
  next(source)  # skipping header
  for row in source:
    print(row[3])

【讨论】:

  • next(source) 而不是 source.next()
  • @BurhanKhalid 抱歉,在 2.7 上测试过...
  • 应该使用with open('this.file', 'rb') as f
  • with open(...) as f: 是惯用的 Python,不是什么特别的优点;此外,open() 没有任何形式的 .close() 都是不好的做法。
  • 如果 OP 使用的是 Python 2.7,那么打开 csv 文件的正确方法是使用 open('this.file', 'rb')。如果 OP 使用的是 Python 3,那么它应该是 open('this.file', 'r', newline='')。我也有点担心分隔符——如果它们是空格,不会使用" " 作为分隔符将New York 分成两部分吗?
猜你喜欢
  • 1970-01-01
  • 2021-12-05
  • 2023-01-17
  • 1970-01-01
  • 2018-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-02
相关资源
最近更新 更多