2017-01-04 3 views
0

Я использую Python 2.7 и я борюсь с проблемой в моем сценарии:Сравнение последовательных чисел в текстовом файле в Python

Я хочу, чтобы прочитать файл .txt и сравнивать числа в последовательных строках, и найти в менее 5 последовательных, которые ниже порогового значения и сохраняют свою позицию (номера строк) в другой .txt-файл и останавливаются при завершении ввода файла.

Может ли кто-нибудь подумать о коде для его реализации? Я пробовал с fobj и номерами, но это не сработает.

Мой входной файл выглядит примерно так:

0.1123 
0.1233 
0.5343 
3.7654 
-3.4325 
-2.9832 
10.3289 
11.3890 
... 

И мой желаемый результат будет линии (в этом случае линии 0 до 5, если мы предполагаем, что порог будет 10.0):

0 
1 
2 
3 
4 
5 
... 

Заранее спасибо!

+4

Вы вообще что-то пробовали или просто хотите, чтобы мы приняли решение для вас? Если вы что-то пробовали, отправьте ваши попытки и что с ними случилось. – Torxed

ответ

1

Если я правильно понимаю, это должно быть то, что вы ищете. Вам нужно немного настроить код, если вы хотите только определенное количество записей.

threshold = 10 
old_file = 'old_file.txt' 
with open(old_file, 'r') as document: 
    values = [x for x, value in enumerate(document) if float(value) < threshold] 

new_file = open('new_file.txt', 'w') 
for x in values: 
    new_file.write(str(x) + '\n') 
+0

Большое спасибо, это сработало очень хорошо! –

Смежные вопросы