Python处理CSV大文件特定行数据

       通常处理csv大文件,需要从文件第一行开始遍历,遍历到指定行才开始进行相应的处理,如果能直接处理指定行数据以优化处理流程,这样可以提高执行效率。下面将举出常见的知识点提供参考。

1、获取csv行数

# 读取csv文件行数
with open("his.csv", 'r') as f:
    size = len(f.readlines())
    print("CSV line number: %d" % (size))

2、处理特定行数据

      模拟情景:his.csv文件有40w行数据,每行有12列数据,测试处理最后100条数据的第1,3列数据。

方法一:遍历到指定行处理

with open("his.csv", 'r') as f:
    reader = csv.reader(f)
    index = 0
    for row in reader:
        index = index + 1
        # 读取StartPoint行到EndPoint行的数据
        if index >= StartPoint and index <  EndPoint:
            # 打印index行的第一列,第二列
            print(row[0], row[2])

测试结果:

real    0m0.438s
user    0m0.345s
sys     0m0.012s

 

方法二:采用linecache处理指定行

for index in range(100):
    # 从StartPoint开始读100行
    row = linecache.getline("his.csv", StartPoint + index)
    str1 = row.split(',', 12)[0]  # 读取csv第一列
    str3 = row.split(',', 12)[2]  # 读取csv第三列
    print(str1, str3)

测试结果:

real    0m0.141s
user    0m0.102s
sys     0m0.035s

 

 

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页