Python read text file columnwise
Neil Cerutti
neilc at norwich.edu
Tue Jan 15 10:45:22 EST 2019
On 2019-01-15, Juris __ <dev_20192019 at outlook.com> wrote:
> Hi!
>
> On 15/01/2019 17:04, Neil Cerutti wrote:
>> On 2019-01-11, shibashibani at gmail.com <shibashibani at gmail.com> wrote:
>>> Hello
>>>>
>>>> I'm very new in python. I have a file in the format:
>>>>
>>>> 2018-05-31 16:00:00 28.90 81.77 4.3
>>>> 2018-05-31 20:32:00 28.17 84.89 4.1
>>>> 2018-06-20 04:09:00 27.36 88.01 4.8
>>>> 2018-06-20 04:15:00 27.31 87.09 4.7
>>>> 2018-06-28 04.07:00 27.87 84.91 5.0
>>>> 2018-06-29 00.42:00 32.20 104.61 4.8
>>>
>>> I would like to read this file in python column-wise.
>>>
>>> I tried this way but not working ....
>>> event_list = open('seismicity_R023E.txt',"r")
>>> info_event = read(event_list,'%s %s %f %f %f %f\n');
>>
>> If it's really tabular data in fixed-width columns you can read
>> it that way with Python.
>>
>> records = []
>> for line in file:
>> record = []
>> i = 0
>> for width in (30, 8, 7, 5): # approximations
>> item = line[i:i+width]
>> record.append(item)
>> i += width
>> records.append(record)
>>
>> This leaves them all strings, which in my experience is more
>> convenient in practice. You can convert as you go if you
>> want,though it won't look nice and simple any longer.
>>
>
> Perhaps even better approach is to use csv module from standard library:
>
> import csv
>
> csv_reader = csv.reader(file, dialect="excel-tab")
> for row in csv_reader:
> # do something with record data which is conveniently parsed to list
> print(row)
>
> ['2018-05-31', '16:00:00', '28.90', '81.77', '4.3']
> ...
> ['2018-06-29', '00.42:00', '32.20', '104.61', '4.8']
Yes, if applicable it is awesome!
--
Neil Cerutti
More information about the Python-list
mailing list