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

标签 python file text

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

示例文本文件:

#     #   #   #
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/

相关文章:

python - DRF APITestCase 不将 `multipart` 与其他参数一起使用

python - tkinter:KeyboardInterrupt 需要一段时间

python - 我正在尝试制作乒乓球游戏,但球的速度不断变化,我找不到问题所在

java - 如何在动态创建的 ListView 中更改文本颜色、大小和字体

java - 读取一个文本文件并写入多个文本文件以进行过滤/提取

python - 使用朴素贝叶斯的文本微调器

python - 在 Python 中每秒更新一个变量?

javascript - HTML5 文件 API 按顺序包含多个文件,而不是一次全部文件

java - 将一个 Action 的结果合并到另一个 Action 中

PHP file_get_contents() : content truncated from 2147483648 to 2147483647 bytes