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

Python:如何将文本文件中的竖排字符转换为横排单词字符串?

文本文件字符重组问题

问题描述

原始文本文件内容:

AOPL
PREE
PAAM
LNCO
EGHN
 E  

期望得到的结果:

APPLE,ORANGE,PEACH,LEMON

尝试用pandas读取文件,代码如下:

import pandas as pd
df = pd.read_fwf("fruits.txt", header=None, names=['A'])

读取后的数据框:

A
0   AOPL
1   PREE
2   PAAM
3   LNCO
4   EGHN
5    E  

目前卡在处理环节,原本思路是把每个字符放到特定行列后再拼接成横排字符串,但想找更优的处理方法。


处理方案

方案1:直接文件读取处理(无需pandas,更轻量)

核心逻辑是对齐每行字符长度,按列提取拼接:

# 读取文件并统一每行长度为4(最长行的字符数)
with open("fruits.txt", "r") as f:
    # 去掉换行符,用ljust补空格到4个字符
    lines = [line.rstrip('\n').ljust(4) for line in f]

# 逐列提取字符拼接成水果名
fruits = []
for col_idx in range(4):
    # 取每一行的第col_idx个字符,拼接后去掉空格
    fruit_name = ''.join([line[col_idx] for line in lines]).replace(' ', '')
    fruits.append(fruit_name)

# 用逗号连接所有水果名
final_result = ','.join(fruits)
print(final_result)

运行后直接输出:APPLE,ORANGE,PEACH,LEMON

方案2:基于已读取的pandas数据框处理

如果不想换读取方式,在现有df基础上处理:

import pandas as pd

df = pd.read_fwf("fruits.txt", header=None, names=['A'])

# 1. 把每行字符串补全到4个字符,拆分每个字符为单独列
df_split = df['A'].str.ljust(4).str.split('', expand=True)
# 2. 去掉拆分后产生的首尾空列
df_split = df_split.drop(columns=[0, 5])
# 3. 按列拼接字符,去掉空格后收集所有水果名
fruit_list = df_split.apply(lambda col: ''.join(col).replace(' ', ''), axis=0)
# 4. 转成逗号分隔的字符串
final_result = ','.join(fruit_list)
print(final_result)

同样能得到目标结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 22:00:03