строки вида в текстовом файле, но только используют первые символы N

У меня есть текстовый файл со строками как это:

2010-02-18 11:46:46.1287 bla
2010-02-18 11:46:46.1333 foo
2010-02-18 11:46:46.1333 bar
2010-02-18 11:46:46.1467 bla

Простой вид подкачал бы строки 2, и 3 (панель прибывает перед нечто), но я хотел бы сохранить строки (которые имеют ту же дату/время) в их первоначальном заказе.

Как я могу сделать это в Python?

Вопрос о премии: вид GNU может также сделать это?

9
задан compie 21 February 2010 в 00:35
поделиться

2 ответа

sorted(array, key=lambda x:x[:24])

Пример:

>>> a = ["wxyz", "abce", "abcd", "bcde"]
>>> sorted(a)
['abcd', 'abce', 'bcde', 'wxyz']
>>> sorted(a, key=lambda x:x[:3])
['abce', 'abcd', 'bcde', 'wxyz']
24
ответ дан 4 December 2019 в 07:35
поделиться

Встроенная сортировка стабильна, поэтому фактически равные значения по умолчанию остаются в порядке.

import operator

with open('filename', 'r') as f:
    sorted_lines = sorted(f, key=operator.itemgetter(slice(0, 24)))

На этом этапе sorted_lines будет списком отсортированных строк. Чтобы заменить старый файл, создайте новый файл, вызовите new_file.writelines (sorted_lines) , затем переместите новый файл поверх старого.

5
ответ дан 4 December 2019 в 07:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: