On 11/30/2010 08:03 PM, javivd wrote:
On Nov 30, 11:43 pm, Tim Harig<user...@ilthio.net>  wrote:
VARIABLE NAME      POSITION (COLUMN) IN FILE
var_name_1                 123-123
var_name_2                 124-125
var_name_3                 126-126
..
..
var_name_N                 512-513 (last positions)

and no, MRAB, it's not the similar problem (at least what i understood
of it). I have to associate the position this file give me with the
variable name this file give me for those positions.

MRAB may be referring to my reply in that thread where you can do something like

  OFFSETS = 'offsets.txt'
  offsets = {}
  f = file(OFFSETS)
  f.next() # throw away the headers
  for row in f:
    varname, rest = row.split()[:2]
    # sanity check
    if varname in offsets:
      print "[%s] in %s twice?!" % (varname, OFFSETS)
    if '-' not in rest: continue
    start, stop = map(int, rest.split('-'))
    offsets[varname] = slice(start, stop+1) # 0-based offsets
    #offsets[varname] = slice(start+1, stop+2) # 1-based offsets
  f.close()

  def do_something_with(data):
    # your real code goes here
    print data['var_name_2']

  for row in file('data.txt'):
    data = dict((name, row[offsets[name]]) for name in offsets)
    do_something_with(data)

There's additional robustness-checks I'd include if your offsets-file isn't controlled by you (people send me daft data).

-tkc




--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to