Skip to main content
 首页 » 编程设计

python之如何解析可变长度分隔文件中的数据

2025年05月04日13虾米姐

我有一个不符合标准的文本文件。所以我知道每个列值的(结束,开始)位置。

示例文本文件:

#     #   #   # 
Techy Inn Val NJ 

使用这段代码找到#的位置:

  1 f = open('sample.txt', 'r') 
  2 i = 0 
  3 positions = [] 
  4 for line in f: 
  5     if line.find('#') > 0: 
  6         print line 
  7         for each in line: 
  8             i += 1 
  9             if each == '#': 
 10                 positions.append(i) 

1 7 11 15 => 位置

到目前为止,还不错!现在,如何根据我获取的位置从每一行中获取值?我正在尝试构建一个有效的循环,但非常感谢任何指针!谢谢(:

请您参考如下方法:

这是一种使用正则表达式读取固定宽度字段的方法

>>> import re 
>>> s="Techy Inn Val NJ" 
>>> var1,var2,var3,var4 = re.match("(.{5}) (.{3}) (.{3}) (.{2})",s).groups() 
>>> var1 
'Techy' 
>>> var2 
'Inn' 
>>> var3 
'Val' 
>>> var4 
'NJ' 
>>>