我有一个不符合标准的文本文件。所以我知道每个列值的(结束,开始)位置。
示例文本文件:
# # # #
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'
>>>
关于python - 如何解析可变长度分隔文件中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3472884/