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

如何写入无单引号、无分隔符且带空格填充的文件?

问题解决方案

你的代码存在的核心问题

  • 每次循环都用w模式打开输出文件,会覆盖之前写入的内容,最终仅保留最后一行结果
  • 使用csv.writer的writerow方法时,传入的字符串会被拆分为单个字符的列表,导致输出格式完全混乱
  • 冗余变量md和result的反复清空属于多余操作,逻辑可以简化

修正后的代码

# 直接处理纯文本,无需csv模块的writer组件
with open(r'C:\Desktop\A.txt', 'r', encoding='utf-8') as infile, \
     open(r'C:\Desktop\B.txt', 'w', encoding='utf-8') as outfile:
    for line in infile:
        # 去除行尾换行符,按分号分割后过滤空字符串(适配末尾带分号的行)
        parts = [p.strip() for p in line.strip().split(';') if p]
        # 按每个字段占10字符右对齐的规则拼接成一行,添加换行符后写入
        formatted_line = f"{parts[0].rjust(10)}{parts[1].rjust(10)}{parts[2].rjust(10)}\n"
        outfile.write(formatted_line)

代码说明

  1. 同时打开输入和输出文件,输出文件仅打开一次,避免循环覆盖
  2. 逐行处理输入内容,自动适配像gh;jsk;kk;这类末尾带分号的行,过滤无效空元素
  3. 用f-string直接实现右对齐空格填充,输出纯文本内容,完全满足无分隔符、无多余符号的需求
  4. 运行后输出文件内容与你期望的格式完全一致:
a        j        kk
    gh        jsk        kk
    gsh       kks        jj

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 01:35:26