-1

我的文本文件有 20 页长,我需要打印特定数据

我的文本文件如下所示:

123mcx    version 1.5.0 ld=fri Apr 09 08:00:00 MST 2008                12/10/12 11:59:03
 ***************************************************************************************  
1-       c ==== CELLS ====                                                               
    2-       1 0   1                   $ outside                                             
    3-       2 102 -0.001 -1 23 51                                                           
    4-       c                                                                               
    5-       21 3   -4.15e-4 -21                          $ detector                         
    6-       22 5   -11.34   -22 21                 $ Pb                                     
    7-       23 6   -7.87    -23 22                 $ Fe tube                                
    8-       c                                                                               
    9-       50 7000 -1.7  -51 41                         
multiplier bins
 att  constant    material   reactions or material-rho*x pairs
     1.02400E+00      3        103
  time  bins

     -i            to  5.00000E+02 shakes
      5.00000E+02  to  1.06000E+03 shakes
      1.06000E+03  to  1.69000E+03 shakes
      1.69000E+03  to  2.40000E+03 shakes
      2.40000E+03  to  3.19000E+03 shakes
      3.19000E+03  to  4.08000E+03 shakes
      4.08000E+03  to  5.08000E+03 shakes
      5.08000E+03  to  6.19000E+03 shakes
      6.19000E+03  to  7.43000E+03 shakes
      7.43000E+03  to  8.84000E+03 shakes

multiplier bin:   1.02400E+00    3        103                                                                         
        time

    5.0000E+02   5.54627E-06 0.0004-------- [I only need this data start here]
    1.0600E+03   2.40573E-06 0.0018
    1.6900E+03   2.11609E-06 0.0026
    2.4000E+03   2.04138E-06 0.0033
    3.1900E+03   2.01640E-06 0.0038
    4.0800E+03   2.07022E-06 0.0043
    5.0800E+03   2.11266E-06 0.0047
    6.1900E+03   2.16806E-06 0.0050
    7.4300E+03   2.24147E-06 0.0053
    8.8400E+03   2.32872E-06 0.0056
    1.0400E+04   2.36765E-06 0.0060
    1.2200E+04   2.50930E-06 0.0061
    1.4100E+04   2.43235E-06 0.0065
    1.6400E+04   2.69267E-06 0.0066-----[end]
1analysis of the results in the tally fluctuation chart bin 
(tfc) for tally  14 with nps =1598425200    print table 160
normed average 7.174350E-05          unnormed history  = 8.85335E-01
 estimated error    = 0.0014          estimated variance of the variance  = 0.0000

我需要跳过所有数据并只打印我需要的,例如:

5.0000E+02   5.54627E-06 0.0004
1.0600E+03   2.40573E-06 0.0018
1.6900E+03   2.11609E-06 0.0026
2.4000E+03   2.04138E-06 0.0033
3.1900E+03   2.01640E-06 0.0038
4.0800E+03   2.07022E-06 0.0043
5.0800E+03   2.11266E-06 0.0047
6.1900E+03   2.16806E-06 0.0050
7.4300E+03   2.24147E-06 0.0053
8.8400E+03   2.32872E-06 0.0056
1.0400E+04   2.36765E-06 0.0060
1.2200E+04   2.50930E-06 0.0061
1.4100E+04   2.43235E-06 0.0065
1.6400E+04   2.69267E-06 0.0066

之后,我只需要添加第二列号,例如

(5.54627E-06 +  2.40573E-06 + 2.11609E-06 + ...+ 2.69267E-06) = 3.504897E-05

请帮助我知道如何跳过数据并只打印我想要的

谢谢你

4

3 回答 3

1

在每一行上使用正则表达式:

5.0000E+02 5.54627E-06 0.0004 看起来像:

import re 
goodLineRegex = r'\d+\.\d+E[+-]\d+\s{3}\d+\.\d+E[+-]\d+\s\d+\.\d+'

for line in file:
     m = goodLineRegex.match(line)
     if m is not None:
         do_something(line)
于 2013-07-31T16:53:44.400 回答
0

您可以使用正则表达式来查找与您的搜索条件匹配的文本

于 2013-07-31T16:51:13.303 回答
0
data = numpy.genfromtxt('filename', skip_header=?, skip_footer=?, usecols=[1])
print data.sum()

skip_header : int, optional 在文件开头要跳过的行数。

skip_footer : int, optional 文件末尾要跳过的行数

usecols :序列,可选要读取的列,0 是第一个。例如, usecols = (1, 4, 5)将提取第 2、第 5 和第 6 列。

您也可以将其与基于正则表达式的方法结合使用,因为 genfromtxt 将使用生成器代替文件。

于 2013-07-31T16:53:29.470 回答