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