Мне нужно сделать функцию python, которая открывает файл, читает в тексте, а затем выводит на GUI Python любые записи, содержащие даты. Примеры действительных дат включают «1/30/10», «1/30/2010», «1-30-2010», «01-30-2010», «30.1.2010», «30. 1. 2010», , и "2010-01-30." Он должен иметь несколько ложных срабатываний, таких как «13010», «01302010» или «30-30-10» в качестве дат.Фильтрация Python и выбор из списка
То, что я до сих пор это
import sys
def main():
infile = open('testdate.txt', 'r')
for line in infile:
words = line.split()
for date in words:
if ____ in date:
print date
infile.close()
main()
Я знаю, что функция line.split()
способна отделить все записи в текстовом файле. То, о чем я не уверен, - это пропустить этот новый список и ТОЛЬКО взять даты. Как я могу фильтровать только даты?
Посмотрите [datetime.strptime] (http://docs.python.org/2/library/datetime.html#datetime.datetime.strptime). Перечислите все возможные форматы дат (в файле) и попробуйте разобрать; если синтаксический анализ удался, распечатайте. – mshsayem
Как я могу использовать datetime.strptime (date_string, format)? Я предполагаю, что мне нужно будет импортировать datetime, а что же такое date_string? Является ли эта переменная, на которую я смотрю, когда я просматриваю элементы в словах? А для формата, как я могу использовать указанные форматы? – Phirip
Вот вопрос с некоторыми хорошими ответами на парсинг дат в нескольких форматах, используя как домашние, так и сторонние парсеры. Кроме того, похоже, что вы на правильном пути. http://stackoverflow.com/questions/7048828/how-can-i-parse-multiple-unknown-date-formats-in-python –