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

如何在无分隔符TXT文件及DataFrame中每5字符后添加逗号或分号

解决方案:在指定位置添加分隔符

一、处理无分隔符TXT文件

1. Python脚本实现

跨平台通用,可兼容特殊行场景:

# 读取原文件并生成处理后的文件
with open('input.txt', 'r', encoding='utf-8') as infile, open('output.txt', 'w', encoding='utf-8') as outfile:
    for line in infile:
        line = line.rstrip('\n')  # 保留行内空格,仅移除换行符
        if len(line) >= 5:
            processed_line = f"{line[:5]}; {line[5:]}\n"
        else:
            processed_line = f"{line}\n"  # 兼容不足5字符的行
        outfile.write(processed_line)

2. 命令行sed工具(Linux/macOS/WSL适用)

快速批量处理,无需编写脚本:

sed -E 's/^(.{5})/\1; /' input.txt > output.txt
  • 逻辑说明:^(.{5})匹配每行开头的5个字符,\1引用该匹配内容,替换为\1; 完成分隔。

二、Pandas DataFrame中的实现方法

假设DataFrame包含存储原始文本的列(示例列名为raw_data),提供两种实用方式:

1. 字符串切片拼接

直接截取前后部分并组合:

import pandas as pd

# 示例DataFrame
df = pd.DataFrame({
    'raw_data': [
        'DEU02 Allemagne',
        'ANDMA Andorre ',
        'AGOUT Angola ',
        'JAMDC Anguilla (Île)'
    ]
})

# 生成处理后的列
df['processed_data'] = df['raw_data'].str.slice(0, 5) + '; ' + df['raw_data'].str.slice(5)

2. 正则拆分重组

利用零宽断言精准拆分后合并:

# 按前5个字符的位置拆分,生成两列
df[['code', 'content']] = df['raw_data'].str.split(pat=r'(?<=.{5})', n=1, expand=True)
# 合并为目标格式
df['processed_data'] = df['code'] + '; ' + df['content']
  • 逻辑说明:(?<=.{5})是正向零宽断言,匹配前5个字符之后的位置,n=1限制仅拆分一次,避免多行内容被误拆分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 12:55:01