python - 如何在 python 中查找 csv 文档中的特定行

标签 python csv python-2.7

我想做的是读入一个 csv 文档并在 SN 列中找到所有值 > 20 并创建一个新文件,其中仅包含 SN > 20 的行。

我知道我需要做:

  1. 阅读原始文件
  2. 打开一个新文件
  3. 遍历原始文件的行

我能做的是找到 SN > 20 的行

import csv
import os

os.chdir("C:\Users\Robert\Documents\qwe")

with open("gdweights_feh_robert_cmr.csv",'rb') as f:
    reader = csv.reader(f, delimiter= ',')
    zerovar = 0
    for row in reader:
        if zerovar==0:
            zerovar = zerovar + 1
        else:
            sn = row [11]
            zerovar = zerovar + 1
            x = float(sn)
            if x > 20:
                print x

所以我的问题是如何获取 SN > 20 的行并将其转换为新文件?

最佳答案

将数据保存在列表中,然后将列表写入文件。

import csv
import os

os.chdir(r"C:\Users\Robert\Documents\qwe")

output_ary = []
with open("gdweights_feh_robert_cmr.csv",'rb') as f:
    reader = csv.reader(f, delimiter= ',')
    zerovar = 0
    for row in reader:
        if zerovar==0:
            zerovar = zerovar + 1
        else:
            sn = row [11]
            zerovar = zerovar + 1
            x = float(sn)
            if x > 20:
                print x
                output_ary.append(row)

with open("output.csv",'w') as f2:
    for row in output_ary:
        for item in row:
            f2.write(item + ",")

关于python - 如何在 python 中查找 csv 文档中的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15891609/

相关文章:

python - 使用思想

php - 使用 PHP 和 Postgresql 导出 CSV

linux - 从 .csv 日志文件中的文本文件中搜索 IP,如果找到,则在其旁边添加新列

python - 写入数据到excel

python - 使 python 代码兼容 2.7 和 3.6+ 版本 - 关于队列模块

python - 从 numpy 数组中提取数据

python - 将数组作为 .jpg 图像上传到 Azure Blob 存储

python - Django:如何在 View 中获取格式日期?

django - 使用 django 中间件时出现 ContentNotRenderedError

python - 将文本和数据图表与 facet 结合?