2011-11-13 87 views
0

我有一個文件包含許多列以及幾列有'日期'(比如20,27,53列是日期)。 從一個特定的列(比如53)中,我想選擇特定月份中的所有日期(比如可能)。 問題是日期的格式是「5/01/2011 12:53」。我的意思是這個日期還包括時間。從python的時間戳列中選擇日期的範圍

我嘗試了幾種方法,但在小時提示點。

  >>> 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) 
          ^

語法錯誤:無效的語法

這是錯誤我有。

夥計們......需要您的幫助!

回答

0

看來你正試圖調用你的daterange()函數,它的參數看起來像不帶引號或日期的日期。這不是大多數編程語言的工作原理。嘗試說一些類似datetime.strptime("5/01/2011 00:00", "%m/%d/%Y %H:%M")的內容,換句話說,指定您希望解析的輸入格式,並將其傳遞給您的函數。

+0

模式匹配爲我工作。感謝約翰和貓++ 這裏是Python代碼: 進口重新 #after導入文件和一個新的文件中寫入.., 爲行csvReader: \t嘗試: \t \t如果len(重。的findall(R 「5/[0-9] +/2011」,行[52])): \t \t \t csvWriter.writerow(行) \t \t否則: \t \t \t繼續 \t除外: –

0

這是不是一個有效的語法,不管它是否包含時間(或者說,它並沒有做你認爲它正在做的事情)。您需要首先將其解析爲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')