tags:

views:

90

answers:

2

I am new to python been using it for graphics but never done it for other problems. My question is how to read this file which is tab or space delimited and has headers in python, i know how to do comma delimted file but not done this on?

ID YR MO DA YrM MoM DaM
100 2010 2 20 2010 8 2010 30
110 2010 4 30 2010 9 2010 12
112 2010 8 20 2010 10 2010 20

Also is there a way to find the difference of number of days between two dates.

+8  A: 

Does the same technique for csv modules does not work?

import csv
reader = csv.reader(open("filename"), delimiter="\t")

Delimiter can be "\s" or "\t".

You can also use DictReader this way:

f = open(filename, '')
try:
    reader = csv.DictReader(f)
    for row in reader:
        print row
finally:
    f.close()

you can also use brute force technique

for line in open(filename):
    listWords = line.split("\t")

Split function:

>>> t = 'ID YR MO DA YrM MoM DaM'
>>> t.split(" ")
['ID', 'YR', 'MO', 'DA', 'YrM', 'MoM', 'DaM']

For calculating no of days, use datetime module : http://docs.python.org/library/datetime.html

>>> import datetime
>>> k = datetime.date(2010, 05, 26) - datetime.date(2010, 02, 10)
>>> k.days
105
>>> 
pyfunc
so if i use csv reader how do i access the each element of each row from the input file.