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

Python不使用pandas与csv模块读取CSV提取前5表头及5行数据

问题解决方法

你当前用readlines()读取到的内容是按行存储的字符串列表,只需要把每行字符串按CSV的逗号分隔符拆分为单列元素的列表,就可以通过列表切片快速筛选需要的列和行,不需要引入第三方库或内置csv模块,全程用原生语法即可实现。

核心逻辑说明

  • CSV默认以英文半角逗号作为列分隔符,直接调用字符串的split(',')方法,就能把单行字符串拆成按列存储的列表
  • 第一行是表头行,拆分后通过切片取前5个元素即可得到目标表头
  • 跳过表头行后,同样通过切片取后续5行有效数据,每行拆分后取前5列做格式化对齐输出即可
  • 提前过滤文件中的空行,避免空内容导致索引报错

可直接运行的实现代码

# 替换为你的csv文件实际存储路径
csv_path = "your_data_file.csv"

# 读取文件所有行,过滤空行、去掉每行首尾的空白字符和换行符
with open(csv_path, 'r', encoding='utf-8') as f:
    valid_lines = [line.strip() for line in f.readlines() if line.strip()]

# 打印前5列表头
header_cols = valid_lines[0].split(',')[:5]
print("=== 前5列表头 ===")
for idx, col in enumerate(header_cols, 1):
    print(f"{idx}. {col.strip()}")

# 打印5行样例数据,做对齐格式化
print("\n=== 5行样例数据 ===")
# 打印表头行
print(" | ".join([f"{col:<18}" for col in header_cols]))
print("-" * (18 * 5 + 4*3))  # 打印分隔线
# 取表头后的前5行数据打印
for line in valid_lines[1:6]:
    row_cols = [item.strip() for item in line.split(',')[:5]]
    print(" | ".join([f"{item:<18}" for item in row_cols]))

可调参数说明

  • 如果你的CSV文件编码不是utf-8(比如gbk格式的中文文件),把open函数里的encoding='utf-8'改成对应编码即可
  • 代码里的18是单列表格的固定宽度,如果你的单元格内容较长,可以把这个数值调大,保证内容显示完整
  • 如果你的CSV分隔符不是英文逗号,把split(',')里的逗号换成实际分隔符即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 20:12:15