2016-07-04 1 views
1

Мне нужно извлечь последний номер в последней строке каждого текстового файла в каталоге. Может ли кто-нибудь заставить меня начать с этого в Python? Данные представляют собой информацию, отформатированную следующим образом:Извлечь значение из каждого текстового файла, соблюдая соглашение об именах - как?

# time 'A' 'B' 
    0.000000E+00 10000 0 
    1.000000E+05 7742 2263 

где столбец «#» пуст в каждом файле. Имена файлов подчиняются следующему правилу именования:

for i in `seq 1 100`; for j in `seq 1 101`; for letter in {A..D}; 
filename = $letter${j}_${i}.txt 

Эти файлы содержат итоговые данные из запущенных моделирования в Касим (Каппа языке). Я хочу взять средние подмножества извлеченных чисел и нанести некоторые результаты.

Matlab не может обрабатывать набор из 50 000 файлов, с которыми я имею дело. Я относительно новичок в Python, но у меня есть опыт работы в Matlab и R. Я хочу сделать извлечение данных через Python и анализ в Matlab или R.

Спасибо за любую помощь.

ответ

2

Этот код должен помочь вам начать работу. Поскольку в каталоге есть только те файлы, для которых вам нужен последний номер, соглашение об именах может быть проигнорировано. Потому что вы можете искать весь файл в этом каталоге.

import glob 

last_numbers = [] 
for filename in glob.glob("/path/to/directory/*"): # dont forget this ending * (its wild character) 
    last_number = file.open(filename).readlines()[-1].split(" ")[-1] 
    # in case last line is empty line '\n' and your interest is in last second line then it should be '.readlines()[-2].split(" ")[-1]' 
    last_numbers.append(last_number) 
+0

Спасибо - я расшифрую этот код и протестирую его! – abscissa