我在一个包含许多内容的通用文件中有一个特定的内容块,该文件任意长,可以包含任何字符,每行以空格开头,并且在某些文本文件中具有以下形式:
1\1\GINC-NODE9999\Scan\...
... ... ... ... ... ... ...
... ... ... ... ...\HF=-568
.8880019,-568.2343213, -568
.2343432, ... , -586.328492
1\RMSD=...
我对\HF=
位于和之间的特定序列感兴趣\RMSD=
。 我想将这些数字放入 Python 列表中。此序列只是一系列以逗号分隔的数字,但是,这些数字可以翻转到第二行。ALSO,\HF=
并且\RMSD
可以通过滚动到换行符来打破。
目前的努力
我目前有以下内容:
with open(infile) as data:
d1 = []
start = '\\HF'
end = 'RMSD'
should_append = False
for line in data:
if start in line:
data = line[len(start):]
d1.append(data)
should_append=True
elif end in line:
should_append = False
break
elif should_append:
d1.append(line)
吐出以下列表
['.6184082129,7.5129238742\\\\Version=EM64L-G09RevC.01\\
State=1-A\\HF=-568\n', ' .8880019,-568.8879907,-568.8879686,
-568.887937,-\n']
问题不仅在于我在整个过程中都有换行符,而且我还保留了比我应该的更多的数据。此外,滚动到其他行的数字在列表中具有自己的位置。我需要它看起来像
['-568.8880019', '-568.8879907', ... ]