Python 熊猫中的固定宽度文件操作

Python 熊猫中的固定宽度文件操作,python,pandas,dataframe,fixed-width,Python,Pandas,Dataframe,Fixed Width,我有一个固定宽度的文件,格式如下: 5678223313570888271712000000024XAXX0101010006461801325345088800.0784001501.25abc@yahoo.com 5678223324686600271712000000070XAXX0101010006461801325390998280.0784001501.25abcde.12345@gmail.com

我有一个固定宽度的文件,格式如下:

5678223313570888271712000000024XAXX0101010006461801325345088800.0784001501.25abc@yahoo.com                                        
5678223324686600271712000000070XAXX0101010006461801325390998280.0784001501.25abcde.12345@gmail.com                             5678123422992299
以下是我尝试过的:

import pandas as pd

ColSpecs = [(0,16),(16,31),(31,44),(44,62),(62,70),(70,73),(73,77),(77,127),(127,143)]

df = pd.read_fwf("~/filename.txt",colspecs=ColSpecs,Header=True)
现在,这肯定有助于我以清晰的格式转换。但是,空白(或固定空白)会被修剪掉。例如:电子邮件字段(#8)设置了50个固定字符。一旦导入到数据帧,它们就会被截断

对于数据操作,我将创建3个新字段,这些字段是从以前导入的字段的值中提取的

最终输出文件结构:

[(0,16)、(16,31)、(31,44)、(44,62)、(62,70)、(70,73)、(73,77)、(77127)、(127143)、(143153)、(153163)、(164165)]

因为,我还没有在dataframes或Pandas->Flat File(保持原始长度不变)的任何其他替代方法上找到任何to_fwf方法,如果有人有更好的解决方案,我将不胜感激


附言:我读到awk/sed在Unix中工作得更好,但仍然想知道Python的情况,我不这么认为<代码>解析器将处理列周围的额外空格,因此文件中的列之间可以有额外的分隔。。据我所知,没有简单的方法可以删除该功能。但在您的情况下,既然需要从以前导入的字段中提取值,为什么不同时指定这些字段是什么?使用
colspecs
时,可以有重叠字段。例如,
ColSpecs=[(0,16),(1,5),(4,10),(5,7)]
是完全有效的,它将创建前16个字段的子字段characters@ALollz:谢谢你的回复。是的,我认为对于额外的空白,在导入过程中无法保留原始长度。