osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Python read text file columnwise


On 12/01/19 1:03 PM, Piet van Oostrum wrote:
> shibashibani at gmail.com writes:
> 
>> 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');


To the OP:

Python's standard I/O is based around data "streams". Whilst there is a 
concept of "lines" and thus an end-of-line character, there is not the 
idea of a record, in the sense of fixed-length fields and thus a 
defining and distinction between data items based upon position.

Accordingly, whilst the formatting specification of strings and floats 
might work for output, there is no equivalent for accepting input data. 
Please re-read refs on file, read, readline, etc.


> Why would you think that this would work?

To the PO:

Because in languages/libraries built around fixed-length files this is 
how one specifies the composition of fields making up a record - a data 
structure which dates back to FORTRAN and Assembler on mainframes and 
other magtape-era machines.

Whilst fixed-length records/files are, by definition, less flexible than 
the more free-form data input Python accepts, they are more efficient 
and faster in situations where the data (format) is entirely consistent 
- such as the OP is describing!


-- 
Regards =dn