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

处理3GB TXT转CSV时遭遇ParserError报错求助

解决ParserError: ' ' expected after '"'的方案

报错原因

这个错误源于TXT文件中存在不规范的双引号("对应实际的"),比如未闭合的引号、引号与分隔符冲突,加上3GB大文件的解析压力,导致Pandas的CSV解析器报错。

具体解决方法

  • 禁用引号解析,跳过格式错误行
    直接关闭引号解析逻辑,避免因不规范引号触发报错,同时保留on_bad_lines='skip'跳过其他格式问题行。注意Windows路径要转义反斜杠或用原始字符串:

    import pandas as pd
    import csv
    
    # 用双反斜杠转义路径,或者用r"path\logs.txt"原始字符串
    df1 = pd.read_csv("path\\logs.txt", delimiter="\t", encoding='cp437', engine="python", 
                      quoting=csv.QUOTE_NONE, on_bad_lines='skip')
    df1.to_csv("C:\\Data\\log1.csv", quotechar='"', header=None, index=False)
    
  • 分批处理大文件,避免内存溢出
    3GB文件直接读入内存容易撑爆,用chunksize分批读取并写入CSV:

    import pandas as pd
    import csv
    
    output_path = "C:\\Data\\log1.csv"
    # 初始化输出文件(无表头则跳过写入表头步骤)
    with open(output_path, 'w', encoding='utf-8', newline='') as f:
        writer = csv.writer(f, quotechar='"')
        # writer.writerow(["列名1", "列名2"])  # 按需添加表头
    
    # 每次读取10万行,可根据内存调整大小
    for chunk in pd.read_csv("path\\logs.txt", delimiter="\t", encoding='cp437', engine="python",
                            quoting=csv.QUOTE_NONE, chunksize=100000, on_bad_lines='skip'):
        chunk.to_csv(output_path, mode='a', header=False, quotechar='"', index=False)
    
  • 预处理文件修复不规范引号
    如果文件中引号确实存在格式问题,先逐行清理后再解析:

    # 清理原始TXT文件中的引号
    with open("path\\logs.txt", 'r', encoding='cp437') as infile, \
         open("path\\cleaned_logs.txt", 'w', encoding='cp437') as outfile:
        for line in infile:
            # 替换所有双引号,或根据实际情况写更精准的清理逻辑
            cleaned_line = line.replace('"', '')
            outfile.write(cleaned_line)
    
    # 用清理后的文件转CSV
    df1 = pd.read_csv("path\\cleaned_logs.txt", delimiter="\t", encoding='cp437', engine="python", on_bad_lines='skip')
    df1.to_csv("C:\\Data\\log1.csv", quotechar='"', header=None, index=False)
    
  • 检查路径转义问题
    代码中路径的反斜杠需转义为\\,或使用原始字符串(前缀r),否则\t会被解析为制表符,导致文件路径错误:

    # 正确写法二选一
    pd.read_csv(r"path\logs.txt", ...)
    pd.read_csv("path\\logs.txt", ...)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:10:43