#python
#python
Вопрос:
У меня есть файл со многими столбцами и несколькими столбцами с «датами» (скажем, 20,27,53 — это столбцы с датами). Из определенного столбца (скажем, 53) я хочу выбрать все даты за определенный месяц (скажем, май). Проблема в том, что формат даты — «5/01/2011 12:53». Я имею в виду, что дата также включает время.
Я пробовал несколько способов, но подсказка указывает на час.
>>> def daterange(start_date, end_date):
... for n in range((end_date - start_date).days):
... may_inav_writer.writerow()
...
>>> daterange(5/01/2011 00:00, 6/01/2011 00:00)
File "<stdin>", line 1
daterange(5/01/2011 00:00, 6/01/2011 00:00)
^
Ошибка синтаксиса: недопустимый синтаксис
это ошибка, которую я получил.
Ребята…нужна ваша помощь!
Ответ №1:
Это недопустимый синтаксис, независимо от того, включает он время или нет (или, скорее, он делает не то, что вы думаете, что он делает). Сначала вам нужно проанализировать его в datetime
объект.
def daterange(start_date, end_date):
date_format = '%m/%d/%Y %H:%M'
start_date = datetime.datetime.strptime(start_date, date_format)
end_date = datetime.datetime.strptime(end_date, date_format)
# ...
daterange('5/01/2011 00:00', '6/01/2011 00:00')
Ответ №2:
Похоже, что вы пытаетесь вызвать свою функцию daterange () с аргументами, которые выглядят как даты без кавычек или что-либо еще. Большинство языков программирования работают не так. Попробуйте сказать что-то вроде datetime.strptime("5/01/2011 00:00", "%m/%d/%Y %H:%M")
, другими словами, указав формат ввода, который вы ожидаете проанализировать, и передав его вашей функции.
Комментарии:
1. Сопоставление с шаблоном сработало для меня. спасибо Джону и cat вот код python: импортируйте повторно #после импорта файла и нового файла для записи .., для строки в CSVReader: попробуйте: if len(re.findall(r»5/[0-9] /2011″, строка[52])): CSVWriter.writerow(строка) еще: продолжить, за исключением: