def read_tags_and_datablocks(text):
  """ read a file consisting of blocks of numbers which are
  separated by tag lines. separate tag lines from data lines
  return two lists

  e.g. for pp.data file:
Atomic number and pseudo-charge
14 4.00
Energy units (rydberg/hartree/ev):
rydberg
Angular momentum of local component (0=s,1=p,2=d..)
2
NLRULE override (1) VMC/DMC (2) config gen (0 ==> input/default value)
0 0
Number of grid points
1603
R(i) in atomic units
    0.000000000000000E+00
    0.719068853804059E-09
    0.144778949458300E-08

  will be parsed into:
   ['Atomic number and pseudo-charge', ...
   ['14 4.00', ...

  Args:
    text (str): file content
  Return:
    tuple: (tags, blocks), both are a list of strings
  """
  lines = text.split('\n')
  tags = []
  blocks = []

  block = ''
  for line in lines:
    try:
      map(float, line.split())
      block += line
    except:
      tags.append(line)
      blocks.append(block)
      block = ''
  blocks.append(block)
  return tags, blocks[1:]