You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何读取CSV文件前1000条记录?切片方法尝试失败

解决CSV文件仅读取前N条记录的问题

嘿,这个问题我之前也踩过坑!你原来的代码失败是因为csv.reader()返回的是一个迭代器,而不是列表——迭代器不支持直接用[:1000]这种切片语法。下面给你几个实用的解决方案:

方法1:用itertools.islice(最简洁高效)

islice可以直接从迭代器中截取指定数量的元素,不需要一次性加载所有数据,非常适合处理大文件:

import csv
from itertools import islice

entries = []
with open('mnist_train.csv', 'r') as f:
    mycsv = csv.reader(f)
    # 从迭代器中取前1000条记录
    for row in islice(mycsv, 1000):
        entries.append(row)

方法2:手动计数循环(无需额外导入)

如果不想引入新模块,手动计数并在达到目标后跳出循环也很简单:

import csv

entries = []
with open('mnist_train.csv', 'r') as f:
    mycsv = csv.reader(f)
    record_count = 0
    for row in mycsv:
        entries.append(row)
        record_count += 1
        # 达到1000条就停止读取
        if record_count >= 1000:
            break

方法3:用Pandas(适合数据处理场景)

如果你已经在使用Pandas处理数据,这个方法会更简洁,Pandas的read_csv直接支持指定读取行数:

import pandas as pd

# nrows指定读取前1000行,header=None表示CSV没有表头
df = pd.read_csv('mnist_train.csv', nrows=1000, header=None)
# 转换为嵌套列表
entries = df.values.tolist()

内容的提问来源于stack exchange,提问作者user8802614

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:48:40