使用re(正则表达式)解析字符串之前的所有行

时间:2018-03-09 15:01:38

标签: python regex

我是一名科学家,试图用Python来解析我的研究数据。在将数据转换为pandas数据帧之前,我使用 re 模块进行了一些处理。

到目前为止,我能够通过此代码实现我想要的目标:

with open("nq1a.dd2", "r") as dd2_all_input_lines:
        for dd2_line in dd2_all_input_lines:
            if "alternative" in dd2_line:
                break
            else:
                dd2_valid_lines = dd2_line  # It stops before the string "alternative" is found, that is what I want.

但是我想问一下是否有办法告诉重新在字符串之前获取所有行"替代"找到而不是像我一样使用 IF

VALID LIVES
....
VALID LINES
<keyword here> (Stop here!)
INVALID LINES
....
INVALID LINES

非常感谢你。

示例数据

s 91    1.00   OUT     9    3   12    7   OCCC     0.34  f829 27  f752 33
       -1.00          10    6   11    8   OCCC     0.74
s 92    1.00   OUT    13    8   12   11   ClCCC     1.98  f284 55  f172 13
s 93    1.00   OUT    30   19   20   16   OCCC     0.17  f864 14  f746 11  f535 17  f517 11
s 94    1.00   OUT     7    6    1    3   CCCC     0.48  f829 10  f172 41
       -1.00           8    3    2    6   CCCC     1.09
s 95    1.00   OUT    17   14   18   15   CNCC     3.64  f564 16  f535 15  f396 10
s 96    1.00   OUT    10    6   11    8   OCCC     0.74  f822 63
       -1.00           8    2    3    6   CCCC     1.09
        1.00           9    3   12    7   OCCC     0.34
****
 33 STRE modes:
  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
 21 22 23 24 25 26 27 28 29 30 31 32 33
 32 BEND modes:
 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
 54 55 56 57 58 59 60 61 62 63 64 65
 31 TORS modes:
 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
 86 87 88 89 90 91 92 93 94 95 96
 33 CH modes:
  2  3  4  5  6  7  8  9 10 11 12 38 39 40 41 42 43 44 45 46
 47 48 67 68 69 70 71 72 73 74 75 76 77
 0 USER modes:


alternative coordinates 118 
k 34    1.00   STRE   20   16   CC    1.396055
k 35    1.00   STRE    6    3   CC    1.394020
k 36    1.00   STRE    7   12   CC    1.518475
v 36    1.00   BEND    7    3    6   CCC   119.99
k 37    1.00   BEND   21   14   12   HNC   111.99
k 38    1.00   BEND   22    1    3   HCC   119.07
k 39    1.00   BEND   25    2    5   HCC   121.23
k 40    1.00   BEND   23    4    5   HCC   120.11
k 41    1.00   BEND   24    5    4   HCC   119.93
k 42    1.00   BEND   28   17   15   HCC   119.54
k 43    1.00   BEND   27   18   15   HCC   119.88
k 44    1.00   BEND   26   19   16   HCC   121.15
k 45    1.00   BEND   29   20   16   HCC   118.64
k 46    1.00   BEND   32   31   30   HCO   111.30
k 47    1.00   BEND   33   31   30   HCO   111.27
k 48    1.00   BEND   34   31   32   HCH   109.33
k 49    1.00   BEND    9    7    3   OCC   122.75
k 50    1.00   BEND   10    8    6   OCC   120.23
k 51    1.00   BEND    7   12   11   CCC   118.96
k 55    1.00   BEND    6    3    1   CCC   120.39
k 58    1.00   BEND   20   16   19   CCC   119.50
k 59    1.00   BEND   17   15   14   CCN   118.88
k 60    1.00   BEND   30   16   19   OCC   124.53
k 63    1.00   BEND    8    6    3   CCC   121.15
k 65    1.00   BEND   13   11   12   ClCC   121.99
k 66    1.00   TORS   21   14   15   18   HNCC  -240.27
k 66    1.00   TORS   21   14   12    7   HNCC    -5.99
k 66    1.00   OUT    14   12   15   21   NCCH     5.36
k 67    1.00   TORS   22    1    3    6   HCCC  -179.92
k 67    1.00   TORS   22    1    4   23   HCCH     0.05
k 67    1.00   OUT     1    3    4   22   CCCH     0.09
k 68    1.00   TORS   25    2    5    4   HCCC  -179.54
k 68    1.00   TORS   25    2    6    8   HCCC     0.99
k 68    1.00   OUT     2    5    6   25   CCCH     0.08
k 69    1.00   TORS   23    4    5    2   HCCC  -180.07
k 69    1.00   OUT     4    5    1   23   CCCH     0.02
k 70    1.00   TORS   24    5    4   23   HCCH     0.07
k 70    1.00   TORS   24    5    4    1   HCCC  -180.00
k 70    1.00   OUT     5    4    2   24   CCCH     0.05
k 71    1.00   TORS   28   17   15   14   HCCN    -3.77
k 71    1.00   TORS   28   17   15   18   HCCC  -179.70
k 71    1.00   OUT    17   15   20   28   CCCH     0.12
k 72    1.00   TORS   27   18   15   14   HCCN     2.71
k 72    1.00   TORS   27   18   19   26   HCCH     0.54
k 72    1.00   OUT    18   15   19   27   CCCH     0.03
k 73    1.00   TORS   26   19   16   30   HCCO     0.41
k 73    1.00   TORS   26   19   16   20   HCCC  -179.39
k 73    1.00   OUT    19   16   18   26   CCCH     0.21
k 74    1.00   TORS   29   20   17   28   HCCH     0.25
k 74    1.00   TORS   29   20   16   19   HCCC  -180.23
k 74    1.00   OUT    20   16   17   29   CCCH     0.16
k 75    1.00   OUT    31   34   33   32   CHHH    19.50
k 75    1.00   OUT    31   32   33   34   CHHH    19.61
k 75    1.00   OUT    31   34   32   33   CHHH    19.50
k 76    1.00   OUT    31   32   30   33   CHOH    19.77
k 76    1.00   OUT    31   33   30   32   CHOH    19.77
k 76    1.00   OUT    31   32   33   30   CHHO    15.09
k 77    1.00   OUT    31   32   30   34   CHOH    21.84
k 77    1.00   OUT    31   33   30   34   CHOH    21.84
k 78    1.00   TORS    7   12   11    8   CCCC    -6.67
k 79    1.00   TORS   16   20   17   15   CCCC     0.37
k 79    1.00   TORS   20   17   15   18   CCCC     0.66
k 79    1.00   TORS   17   20   16   19   CCCC    -0.70
k 80    1.00   TORS    2    6    3    1   CCCC    -0.24
k 82    1.00   TORS    6    3    1    4   CCCC     0.33
k 82    1.00   TORS    3    7   12   11   CCCC     6.53
k 83    1.00   TORS    3    6    2    5   CCCC    -0.04
k 86    1.00   TORS   20   16   19   18   CCCC    -0.01
k 87    1.00   TORS   11    8    6    2   CCCC  -179.10
k 89    1.00   TORS   31   30   16   20   COCC  -179.96
k 90    1.00   OUT     8    6   11   10   CCCO     0.28
k 90    1.00   TORS   10    8   11   12   OCCC  -178.42
k 90    1.00   TORS   10    8   11   13   OCCCl     3.77
k 91    1.00   OUT     7    3   12    9   CCCO     0.13
k 91    1.00   TORS    9    7   12   11   OCCC  -173.85
k 91    1.00   TORS    9    7   12   14   OCCN     3.26
k 92    1.00   OUT    11    8   12   13   CCCCl     0.55
k 92    1.00   TORS   13   11   12    7   ClCCC  -189.01
k 92    1.00   TORS   13   11   12   14   ClCCN    -5.50
k 93    1.00   OUT    16   19   20   30   CCCO     0.06
k 93    1.00   TORS   30   16   19   18   OCCC  -180.21
k 93    1.00   TORS   30   16   20   17   OCCC  -180.51
k 94    1.00   OUT     3    6    1    7   CCCC     0.15
k 94    1.00   TORS    7    3    6    8   CCCC    -2.07
k 94    1.00   TORS    7    3    1    4   CCCC  -179.12
k 95    1.00   OUT    15   14   18   17   CNCC     1.20
k 95    1.00   TORS   17   15   18   19   CCCC    -1.37
k 95    1.00   TORS   17   15   14   12   CCNC  -219.68
k 96    1.00   OUT     6    3    2    8   CCCC     0.35
k 96    1.00   TORS    8    6    2    5   CCCC  -178.79
k 96    1.00   TORS    8    6    3    1   CCCC  -181.52
v 9     1.00   STRE   20   16   CC    1.396055
v 15    1.00   STRE    7   12   CC    1.518475
v 20    1.00   STRE    6    3   CC    1.394020
v 22    1.00   STRE    6    3   CC    1.394020
v 25    1.00   STRE   20   16   CC    1.396055
v 29    1.00   STRE    7   12   CC    1.518475
v 34    1.00   BEND   16   20   17   CCC   120.33
v 35    1.00   BEND    3    6    2   CCC   119.61
v 36    1.00   BEND   12    7    3   CCC   118.82
v 82    1.00   TORS    1    3    6    2   CCCC    -0.24
v 84    1.00   TORS   19   16   20   17   CCCC    -0.70
v 87    1.00   TORS   11   12    7    3   CCCC     6.53
s 27    1.00   STRE   30   16   OC    1.355049
s 24    1.00   STRE   14   12   NC    1.344852
s 57    1.00   BEND   14   12   11   NCC   129.85
s 62    1.00   BEND   15   14   12   CNC   130.10
s 59    1.00   BEND   17   15   18   CCC   119.42
s 54    1.00   BEND   18   15   14   CCN   121.57

0 个答案:

没有答案