shibashib...@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');
There is actually a library that implements a C-like scanf. You can install it with $ pip install scanf After that: $ cat read_table.py from scanf import scanf with open("seismicity_R023E.txt") as f: for line in f: print( scanf("%s %s %f %f %f\n", line) ) $ cat seismicity_R023E.txt 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 $ python read_table.py ('2018-05-31', '16:00:00', 28.9, 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.2, 104.61, 4.8) $ However, in the long term you may be better off with a tool like pandas: >>> import pandas >>> pandas.read_table( ... "seismicity_R023E.txt", sep=r"\s+", ... names=["date", "time", "foo", "bar", "baz"], ... parse_dates=[["date", "time"]] ... ) date_time foo bar baz 0 2018-05-31 16:00:00 28.90 81.77 4.3 1 2018-05-31 20:32:00 28.17 84.89 4.1 2 2018-06-20 04:09:00 27.36 88.01 4.8 3 2018-06-20 04:15:00 27.31 87.09 4.7 4 2018-06-28 04:00:00 27.87 84.91 5.0 5 2018-06-29 00:00:00 32.20 104.61 4.8 [6 rows x 4 columns] >>> It will be harder in the beginning, but if you work with tabular data regularly it will pay off. -- https://mail.python.org/mailman/listinfo/python-list