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

如何用Python/Pandas读取含换行符的制表符分隔文件?

解决带引号内换行的制表符文件读取问题

Pandas 解决方案

你的pd.read_csv代码未正确识别引号内的换行属于同一字段,补充参数即可修复:

import pandas as pd
import csv

df = pd.read_csv(
    "C:/dummy/dummy.csv",
    sep='\t',
    quotechar='"',
    quoting=csv.QUOTE_ALL,  # 指定引号包裹的内容为完整字段
    engine='python'  # Python引擎对特殊格式兼容性更好
)

执行后df会正确生成2行数据,address字段内的换行将被保留为字段内容的一部分。

原生Python 解决方案

如果用原生Python读取,需要手动判断行是否处于引号包裹状态,拼接被换行拆分的字段:

file_path = 'C:/dummy/dummy.csv'
processed_lines = []
current_entry = ''
in_quote = False

with open(file_path, 'r', encoding='utf-8') as f:
    for raw_line in f:
        line = raw_line.rstrip('\n')  # 移除末尾换行符,保留其他空白
        # 通过引号数量判断是否切换包裹状态
        quote_num = line.count('"')
        if quote_num % 2 != 0:
            in_quote = not in_quote
        
        if in_quote:
            # 引号未闭合,拼接当前行(用空格替换换行,避免影响后续字段分割)
            current_entry += line + ' '
        else:
            # 引号闭合,完成当前条目
            current_entry += line
            processed_lines.append(current_entry)
            current_entry = ''

# 输出处理后的完整行
for line in processed_lines:
    print(line)

这段代码会把引号内的多行内容合并为一个完整字段,最终得到2条完整数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 16:01:09