如何用Python将Tab替换为指定数量空格适配第三方固定空格分隔读取程序
解决方法
核心逻辑
- 预先按顺序定义每个字段后需要追加的空格数列表
- 逐行读取原文件,按Tab分割得到所有字段
- 按字段顺序拼接字段+对应数量的空格,最后一个字段后不加空格,写入新文件
可直接使用的Python脚本
# 按顺序填写每个字段后对应的空格数,字段1后填第1位,字段2后填第2位,以此类推 gap_space_rule = [6, 2, 1, 2] # 替换为你的原始文件路径 input_file = "./source.txt" # 替换为转换后文件的保存路径,不会修改原始文件 output_file = "./processed.txt" # 若文件为其他编码(如gbk),修改下方encoding参数即可 file_encoding = "utf-8" with open(input_file, "r", encoding=file_encoding) as f_in, open(output_file, "w", encoding=file_encoding) as f_out: for raw_line in f_in: # 若需要保留行首尾原始空格,删除.strip()即可 fields = raw_line.strip().split("\t") processed_line = "" for i, field in enumerate(fields): processed_line += field # 最后一个字段后不需要补空格 if i < len(fields) - 1: # 超出规则长度的分隔符默认补1个空格,可自行修改默认值 space_count = gap_space_rule[i] if i < len(gap_space_rule) else 1 processed_line += " " * space_count f_out.write(f"{processed_line}\n")
注意事项
- 操作前建议备份原始文件,避免误操作丢失数据
- 如果字段数量更多,直接在
gap_space_rule列表中按顺序补充对应位置的空格数即可 - 若转换后出现乱码,修改
file_encoding参数为你的文件实际编码(常见为gbk、gb2312等)
内容的提问来源于stack exchange,提问作者Confused_scientist
相关产品推荐
相关产品推荐

