在python中,从带有时间戳的列中选择日期范围

在python中,从带有时间戳的列中选择日期范围,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)

我有一个文件,有很多列,只有少数列有“日期”,比如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)
                              ^
SyntaxError:无效语法

这就是我犯的错误


伙计们…需要你们的帮助

似乎您正试图使用看起来像没有引号的日期或其他参数来调用daterange函数。这不是大多数编程语言的工作方式。试着说一些类似datetime.strptime5/01/2011 00:00,%m/%d/%Y%H:%m的话,换句话说,指定您希望解析的输入格式,并将其传递给您的函数。

它不是一个有效的语法,不管它是否包含时间,或者更确切地说,它没有做您认为它正在做的事情。您需要首先将其解析为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')

模式匹配对我有用。感谢John和cat++以下是python代码:导入文件后导入re和要写入的新文件..,对于csvReader中的行:try:if lenre.findallr5/[0-9]+/2011,row[52]:csvWriter.writerow else:继续,除了: