python从指定行开始读取csv文件_从python中的随机行开始读取CSV文件

  • Post author:
  • Post category:python


这将在不需要多处理的情况下满足您的要求,部分原因是您很可能不需要它。在

一个简单的基准使方案3在速度上成为赢家。在

选项1:import csv

import random

starting_points = [random.randint(0, 5) for i in range(3)]

read_nbr_of_lines = 2

for sp in starting_points:

print(‘random starting line: %s’%sp)

read_lines = 0

with open(‘large_csv.csv’) as cf:

lines = csv.reader(cf)

for nbr, line in enumerate(lines):

if nbr < sp – 1: continue

read_lines += 1

if read_lines > read_nbr_of_lines: break

print(nbr, line)

可能这会导致处理大量数据的速度很慢,但我不认为在使用csv模块时,你希望从一个随机的点开始就可以绕过这个问题。在

您可以绕过从字节0读取文件的事实,方法是使用f.seek(start_byte)对字节的起始点进行种子设定,然后用f.read(my_chunk_size)读取文件中的一大块字节。在这种情况下,为了得到一个新的行,您必须在随机的起始点之后通过new_line_char自己找到行,为这些行执行自己的解析器,并在读取的行数上保留一个计数器。在

选项2:

如果你的文件小于1GB&#



版权声明:本文为weixin_42305901原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。