Я только что написал код Python для извлечения данных из примерно 700 текстовых файлов в один файл с именем out_data.txt
Содержимое файла out_data.txt выглядит примерно так:
datetime, V_1, V_2, V_3, V_4, V_5, V_6, V_7
2013-03-17 18: 01: 48,372,100,884,776,009,6553, FFFF, 987
2013-03-17 18: 02: 03,828,876,632,887,008,5423,879,443
2013-05-17 20: 13: 52,488,543,987,233,112,098,344,123
2013-08-17 23: 09: 08,171,667,9887, 9897,09876,0987,098,0987
2013-01-17 35: 06: 04,172,267,987,6897,9876,1287,3498,2987
.....
всего 5783374 строк в файле out_data.txt, и каждая строка (после заголовка) начинается со значения datetime
Однако проблема в том, что написанный мной код извлекает данныеиз каждого отдельного файла и добавляет в мой файл out_data.txt, но строки не в порядке даты и времени, как вы можете видеть выше.Я надеялся, что мои строки будут в порядке даты и времени, потому что мне нужно построить эти данные.
Любая помощь будет высоко оценена.
import re #regular expressions
import glob #file management and reading
if __name__ == "__main__": #opening for python
all_header=[] #list declaration
all_values=[] #list declaration
i=0
with open('out_data.txt', 'w') as of: #output file
for infile in glob.glob("/Users/name/Desktop/raw_data/*.txt"): #input file
with open(infile) as fobj:
print "processing file {}".format(infile)
for line in fobj:
data = line.split() #split each line into individual tokens
if len(data)==2 and re.search(r'(\d+-\d+-\d+)', data[0]): #regular expression to identify date and time
header=['datetime'] #column name datetime
values=[data[0]+" "+data[1]] #date+time as one value
else:
header=[d for d in data if data.index(d)%2==0]
values=[d for d in data if data.index(d)%2!=0]
all_header.extend(header)
all_values.extend(values)
if not header:
if i==0:
of.write(','.join(all_header))
i=i+1
of.write("\n")
of.write(','.join(all_values))
all_header = []
all_values = []
of.write("\n")
of.write(','.join(all_values))
Мой ожидаемый результат от приведенных выше примеров данных будет
datetime, V_1, V_2, V_3, V_4, V_5, V_6, V_7
2013-01-17 35: 06: 04,172,267,987,6897,9876,1287,3498,2987
2013-03-17 18: 01: 48,372,100,884,776,009,6553, ffff, 987
2013-03-17 18: 02: 03,828,876,632,887,008,5423,879,443
2013-05-17 20: 13: 52,488,543,987,233,112,098,344,123
2013-08-17 23: 09: 08.171, 667,9887,9897,09876,0987,098,0987
но, конечно, я не мог понять, как включить элемент сортировки в код или есть ли другой способ сделать это.
Спасибо !!