在某个点之后定位文本/数据文件中的特定行

时间:2017-02-21 09:31:03

标签: python

所以我在一个包含文本和数据的文件中有一些数据。 例如,它的片段可能如下所示:

Structure: PTV
Plan: CT
Course: 900
Volume [cm³]: 107.2
Dose Cover.[%]: 100.0
Sampling Cover.[%]: 99.9
Min Dose [%]: 90.2
Max Dose [%]: 104.9
Mean Dose [%]: 100.0
Modal Dose [%]: 99.7
Median Dose [%]: 100.1
STD [%]: 1.7

在此之前还有许多其他我不需要的东西,以及之后。基本上我想要定位Volume [cm³]: 107.2的行并将该值用于计算等。但是,由于数据文件中有不同的结构,因此对于不同的结构重复此text / pattern / snippet,所以我只能' t说:“使用数据输入,它表示音量[cm³]”,因为它发生在许多地方,并且它们不一定总是在同一顺序。所以我需要的可能是某个文件中的第2个,另一个文件中的第4个。

那么,在Volume [cm³]: 107.2或者需要任何名称的行后,我将如何定位Structure: PTV行?

1 个答案:

答案 0 :(得分:1)

你的问题很不清楚。既然你把它标记为python,我想你正在寻找这种语言的解决方案。你需要的可能是regular expressions。 Python有一个名为re的内置模块。

import re
with open('yourdata', 'r') as f:
    str = f.read()

pattern = re.compile("Volume \[([^]]*)\]: ([0-9.]*)")
re.findall(pattern, str)

这将为您提供(单位,值)的列表:

Out[29]: [('cm³', '107.2')]