время анализа строки, чтение из файла ввода (простой текст) - PullRequest
0 голосов
/ 27 февраля 2019

Я использую python, и я получаю данные с сервера, регистрирую, поэтому мне нужно каждый день анализировать дату и время, как мне напечатать только дату и время из этого файла?

fin = open("data.txt","r")
text = fin.read()
new_date_format1= datetime.datetime.strptime('%Y-%m-%d')
print('Today is:',new_date_format1)

я хочу, например, при запуске моего кода напечатать мне дату из этого файла, я не хочу записывать дату в моем коде, но я хочу, чтобы мой код искал внутри файла и взял дату в формате%Y-% m-% d

`2019-02-27 01:13:41,952 INFO  [stdout] (AsyncAppender-Dispatcher-Thread-104)`


2019-02-27 03:45:20,187 INFO [stdout] (AsyncAppender-Dispatcher-Thread-104)

заранее спасибо

1 Ответ

0 голосов
/ 27 февраля 2019

Поскольку вы работаете с файлом журнала и, очевидно, хотите только текущую дату, вы можете просто выполнить поиск последней строки (потенциально огромного) файла журнала вместо чтения всего файла в память с помощью .read().Этот ответ StackOverflow содержит хороший пример того, как найти последнюю строку файла.

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

'^\d+-\d+-\d+\w'

Пробел \w в конце не позволяет не жадному сопоставлению возвращать неправильные (короткие) результаты.Позже вы можете просто использовать строковый метод .strip(), чтобы удалить его.

Получив строку даты, вы можете использовать одну из опций, показанных в ответах на этот вопрос StackOverflow по порядкуразобрать объект datetime из него.Однако, если вы все равно хотите распечатать его в том же формате, вы также можете распечатать извлеченную строку напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...