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

使用pandas读取12000行txt文件行数不符的问题求助

解决pandas读取txt文件行数不符的问题

先确认文件实际行数

先排查文件本身是否真的有12000行,用系统命令统计:

  • Windows命令提示符:find /c /v "" your_file.txt
  • Linux/macOS终端:wc -l your_file.txt
    如果统计结果不是12000,说明文件生成环节就有问题,得先检查生成代码。

调整read_csv参数适配数据格式

默认参数可能跳过或误解析行,试试以下组合:

  • 强制保留空行(避免被自动跳过):
    import pandas as pd
    df = pd.read_csv('your_file.txt', header=None, skip_blank_lines=False)
    
  • 指定兼容空格的分隔符(匹配示例中逗号后带空格的格式):
    df = pd.read_csv('your_file.txt', header=None, sep=',\s*', engine='python')
    
  • 开启错误行警告,定位异常行:
    df = pd.read_csv('your_file.txt', header=None, on_bad_lines='warn')
    
    运行后如果有警告,会提示哪些行不符合3列格式,方便针对性修复。

适配不同系统的换行符

不同系统的换行符(Windows\r\n、Linux/macOS\n)可能导致行数识别错误,手动指定换行符试试:

# 适配Windows换行符
df = pd.read_csv('your_file.txt', header=None, lineterminator='\r\n')
# 或适配Linux/macOS换行符
df = pd.read_csv('your_file.txt', header=None, lineterminator='\n')

逐行验证数据格式

如果以上方法都无效,用代码逐行检查文件内容,统计有效行数和错误行:

count_valid = 0
invalid_lines = []

with open('your_file.txt', 'r') as f:
    for line_num, line in enumerate(f, 1):
        stripped_line = line.strip()
        # 跳过空行(如果不需要保留的话)
        if not stripped_line:
            continue
        # 按逗号分割列
        columns = [col.strip() for col in stripped_line.split(',')]
        if len(columns) != 3:
            invalid_lines.append((line_num, stripped_line))
        else:
            count_valid += 1

print(f"有效行数:{count_valid}")
print(f"前10条错误行:{invalid_lines[:10]}")

通过输出结果可以直接定位到格式异常的行,进而修复文件内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:01:09