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

如何用Python将文本文件中按行分布的企业数据转为列格式?

将行式企业数据转换为列格式的Python方案

你可以通过Python轻松实现这种格式转换,核心思路是将每行的企业数据按组分割,再拼接成列格式的单行。以下提供两种适配不同场景的实现方案:

方案一:固定行数分组(适合每组行数统一的场景)

如果每个企业的信息固定占12行(如你的示例),可以直接按固定行数分割处理:

# 读取原始文本文件,清理空行和首尾空白
with open("companies.txt", "r", encoding="utf-8") as f:
    raw_lines = [line.strip() for line in f if line.strip()]

# 每组12行对应一个企业的完整数据
group_size = 12
result = []

# 按组遍历处理
for idx in range(0, len(raw_lines), group_size):
    company_data = raw_lines[idx:idx+group_size]
    # 拼接为带分隔符的单行,<30表示左对齐占30字符(可选,用于美化对齐)
    formatted_line = " | ".join(f"{item:<30}" for item in company_data)
    result.append(formatted_line)

# 将结果写入新文件
with open("formatted_companies.txt", "w", encoding="utf-8") as f:
    f.write("\n".join(result))

方案二:按起始标识分组(适合行数不固定的场景)

如果企业数据的行数不固定,但每组都以661.这类数字加句号的行作为起始,可以通过识别起始行来动态分组:

# 读取并清理原始数据
with open("companies.txt", "r", encoding="utf-8") as f:
    raw_lines = [line.strip() for line in f if line.strip()]

result = []
current_company = []

for line in raw_lines:
    # 判断是否为新企业的起始行(数字结尾带句号)
    if line.endswith(".") and line[:-1].isdigit():
        # 若已有未保存的企业数据,先拼接保存
        if current_company:
            formatted_line = " | ".join(f"{item:<30}" for item in current_company)
            result.append(formatted_line)
        # 初始化新企业的数据列表
        current_company = [line]
    else:
        current_company.append(line)

# 处理最后一组企业数据
if current_company:
    formatted_line = " | ".join(f"{item:<30}" for item in current_company)
    result.append(formatted_line)

# 写入结果文件
with open("formatted_companies.txt", "w", encoding="utf-8") as f:
    f.write("\n".join(result))

说明

  • 两种方案都会自动过滤原始文件中的空行和多余空白,保证数据整洁。
  • 代码中的{item:<30}是可选的格式化参数,用于让每列左对齐并占据30个字符宽度,使输出更美观;如果不需要对齐,直接用" | ".join(company_data)即可。
  • 执行代码后,会生成一个名为formatted_companies.txt的新文件,内容就是你需要的列格式数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:05:41