python-2.7 - 使用 Python 循环 csv 文件的指定行

标签 python-2.7 csv

我在 python 2.7 中使用 csv 包

import csv    
f=open('Path\Top.csv')


csv_f = csv.reader(f)
counter = 0
for row in csv_f:
    if counter ==0 :
        next
    # Do some more stuff
    counter += 1

第一行包含标题,我不希望将其包含在循环中。我正在尝试上述方案以省略分析中的第一行。

有没有一种优雅的方法可以完成同样的任务,上面的方案不起作用。

另外,如何从第 i 行迭代到第 j 行,而不必每次都从第一行开始。文件很大,每次都从第一行开始浪费时间。

谢谢。

最佳答案

next 是一个函数,而不是控制流语句。使用 continue 而不是得到你想要的行为。您还需要增加 if阻止自 continue将跳过 for 的其余部分循环迭代。

if counter == 0:
    counter += 1
    continue

或者,一种更简洁的方法(假设您不需要 counter )是使用 next在进入 for 之前跳过第一行环形。这也证明了 next 的正确用法。在此示例中,我忽略了 next(csv_f) 的返回值但值得注意的是,它将包含 CSV header ,以防您想在循环行之前对其执行某些操作。

csv_f = csv.reader(f)
next(csv_f) # Skip header
for row in csv_f:
    # Do some more stuff
    print row

如果您确实需要counter ,一种更 Pythonic 的做事方式是使用内置 enumerate 功能。

csv_f = csv.reader(f)
for counter, row in enumerate(csv_f):
    if counter == 0:
        continue
    # Do some more stuff
    print row

关于python-2.7 - 使用 Python 循环 csv 文件的指定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32981248/

相关文章:

python - Windows Python 与 Linux Python : "from module import *" is not importing on Windows

javascript - 如何在 Firefox 不添加 "unsafe"前缀的情况下链接到数据 URL

c++ - 在Qt5应用程序上读取CSV文件时出现无限循环

ruby - 查明 CSV 文件是否包含 Ruby 中的空字段?

python - python中列表的排序列表

python - 在 MAC OSX 上使用 PY2APP 打包 key 环模块时出错

python - 如何读取/解析目录中的所有 yaml 文件?

Python:避免嵌套 IF 语句的流程

javascript - 使用 PapaParse 正确解析本地文件

mysql - 将大型 csv 文件导入 mysql