无需Pandas,简化Python代码用csv模块打印大CSV前5行(含表头)
简化后的实现代码
import csv import os filename = "/Users/xx/Desktop/xx.csv" # 检查文件是否存在,提升代码健壮性 if not os.path.isfile(filename): print(f"错误:文件 {filename} 不存在") exit(1) with open(filename, 'r') as csvfile: csvreader = csv.reader(csvfile) # 获取表头(第一行) header = next(csvreader) # 收集前5行:表头 + 后续最多4行 top_rows = [header] for _ in range(4): try: top_rows.append(next(csvreader)) except StopIteration: # 文件行数不足5行时终止循环 break # 打印文件总行数 print(f"总行数:{csvreader.line_num}") # 紧凑打印表头 print("表头:" + ", ".join(header)) # 紧凑打印前5行内容 print("\n前5行内容:") for row in top_rows: print(", ".join(row))
核心优化说明
- 内存友好:不再读取整个大型CSV文件到内存,仅按需读取前5行,避免内存占用过高。
- 格式紧凑:用
,.join(row)替代原固定宽度的格式化输出,消除不必要的空白,让内容更紧凑直观。 - 代码简化:移除冗余的全局列表变量,逻辑更简洁直接;用f-string替代老旧的
%格式化,可读性更强。 - 健壮性提升:通过
os.path.isfile检查文件存在性,同时处理文件行数不足5行的边界情况。
内容的提问来源于stack exchange,提问作者user16674853
相关产品推荐
相关产品推荐

