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

优化pandas.read_fwf处理定宽文件时保留空格的读写流程

优化方案:用内存流替代临时文件

直接使用io.StringIO在内存中处理文本替换,完全省去临时文件的创建和读写,代码更简洁:

读取阶段(保留首尾空格)

import pandas as pd
from io import StringIO

with open("input.txt") as inFile:
    txt_content = inFile.read().replace(" ", "~")
# 用内存流直接传递给read_fwf,无需临时文件
df = pd.read_fwf(StringIO(txt_content), widths=[8, 8, 8])

写入阶段(恢复空格)

import numpy as np
from io import StringIO

# 将内容写入内存流
output_buffer = StringIO()
np.savetxt(output_buffer, df.values, fmt='%s', delimiter='')
# 读取内存流内容并替换字符,直接写入目标文件
with open("output.txt", 'w') as outFile:
    outFile.write(output_buffer.getvalue().replace("~", " "))

可选优化:精准处理字段空格

如果不想全量替换所有空格,也可以在读取后针对字段首尾空格恢复(需确保字段宽度与原始一致):

df = pd.read_fwf("input.txt", widths=[8, 8, 8], skipinitialspace=False)
# 对每个字符串类型字段,按原始宽度补全首尾空格
df = df.apply(
    lambda col: col.str.pad(width=8, side='both') if col.dtype == object else col
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:25:42