首页 > 解决方案 > 如何在python的文本文件中提取两个字符串之间的值?

问题描述

假设我有一个文本文件,其中在两个字符串之间生成数据。现在,我想从文本文件中提取数据。谁能帮我在这里提取数据?我已尝试使用以下代码,但它不起作用。

TEXT FILE
<velocity> 5 "momentum1 |x_value@lin |y_value@log"
  +1.0000000e+00   +1.5000000e+00   +1.8060150   +0.0000000
  +1.5000000e+00   +2.5000000e+00   +0.0000000   +0.0000000
  +2.5000000e+00   +3.5000000e+00   +0.0000000   +0.0000000
  +3.0000000e+00   +4.5000000e+00   +0.0000000   +0.0000000
  +3.5000000e+00   +5.5000000e+00   +0.0000000   +0.0000000
<\velocity>

<velocity> 5 "momentum2 |x_value@lin |y_value@log"
.
.    datas
.
.
.
<\velocity>
import numpy as np
import matplotlib

with open('mydata.txt') as infile, open('momentum1.txt', 'w') as outfile:
    currentstate = False
    for line in infile:
        if line.strip() == "<velocity> 5 momentum1 |x_value@lin |y_value@log":
            currentstate = True
            continue
        elif line.strip() == "<\velocity>":
            currentstate = False
            continue
        elif currentstate:
            outfile.write(line)

标签: python

解决方案


您也可以将其读取为单个字符串,然后可能使用拆分语句?例如:

import re

values = []
with open('mydata.txt') as infile, open('momentum1.txt', 'w') as outfile: 
    currentstate = False
    for line in str(infile):
      for y in str(line).split(' '):
         if re.search('+', y):
            values.append(y)

然后,您可以选择如何输出它,使用连接语句,或者只是一个循环。


推荐阅读