Reading a tab delimited text file.

Mel mwilson at the-wire.com
Mon Feb 23 17:22:29 EST 2009


Stephen wrote:

> Hi,
> 
> I would like to read a text file of numbers produced by a data
> acquisition system into three vectors of doubles. The contents of the
> file are:
> 
> +0.0000000e+0 +2.7645134e+1   +2.7745625e+1
> 
> +0.4100041e-1 +2.7637787e+1   +2.7731047e+1
> 
> +0.0820008e+0 +2.7645134e+1   +2.7750483e+1
> ...
> 
> or
> 
> +0.0000000e+0\t+2.7645134e+1\t+2.7745625e+1\r\n
> ...
> 
> I would like to read the first column into time_vec, second into
> ch1_vec and so on.
> 
> (I have never programmed in python and am having trouble finding a way
> to do this).

A simple starting point, without error handling, etc., could be:

a_list = []
b_list = []
c_list = []
for line in open ('my_numbers.txt', 'rt'):
    a, b, c = [float (x) for x in line.split()]
    a_list.append (a)
    b_list.append (b)
    c_list.append (c)

Assuming every line has three tab-separated numbers, the text versions of
the numbers are all convertable to float, the text file that's opened will
eventually be closed (whether by garbage collection or program
termination.)

This code does illustrate the string's split method, list comprehension,
sequence unpacking, and the fact that each of a_list, b_list, c_list *MUST*
be initialized with a distinct empty list object.

        Mel.





More information about the Python-list mailing list