2016-11-24 10 views
-2

我有一個輸入文件1.csvPython腳本從一個文件中的日期範圍鍵和重定向輸出

42200000000099920160613000000 column=h:profile, timestamp=1465780825878, value=[{"weight":100.0,"centroidLatitude":23.723663502974482,"centroidLongitude":58.812344445144724,"centroidUncertainity":1.384228745747496E11,:{"Wed21":100.0,"Wed20":100.0,"Wed23":100.0,"Wed22":100.0,"Wed14":100.0,"Wed13":100.0,"Wed16":100.0,"Wed15":100.0,"Wed18":100.0,"Wed17":100.0,"Wed19":100.0 
42200000000099920160613000000 column=h:profile, timestamp=1465780825878, value=[{"weight":100.0,"centroidLatitude":23.723663502974482,"centroidLongitude":58.812344445144724,"centroidUncertainity":1.384228745747496E11,:{"Wed21":100.0,"Wed20":100.0,"Wed23":100.0,"Wed22":100.0,"Wed14":100.0,"Wed13":100.0,"Wed16":100.0,"Wed15":100.0,"Wed18":100.0,"Wed17":100.0,"Wed19":100.0 
42200000000099920160614000000 column=h:profile, timestamp=1465780825878, value=[{"weight":100.0,"centroidLatitude":23.723663502974482,"centroidLongitude":58.812344445144724,"centroidUncertainity":1.384228745747496E11,:{"Wed21":100.0,"Wed20":100.0,"Wed23":100.0,"Wed22":100.0,"Wed14":100.0,"Wed13":100.0,"Wed16":100.0,"Wed15":100.0,"Wed18":100.0,"Wed17":100.0,"Wed19":100.0, 
42200000000099920160615000000 column=h:profile, timestamp=1465780825878, value=[{"weight":100.0,"centroidLatitude":23.723663502974482,"centroidLongitude":58.812344445144724,"centroidUncertainity":1.384228745747496E11,:{"Wed21":100.0,"Wed20":100.0,"Wed23":100.0,"Wed22":100.0,"Wed14":100.0,"Wed13":100.0,"Wed16":100.0,"Wed15":100.0,"Wed18":100.0,"Wed17":100.0,"Wed19":100.0 

我想記錄只能從20160613到20160614.

的我寫程序,我需要輸入代碼的開始日期和結束日期,而不是我應該要求用戶輸入開始日期和結束日期,並將輸出重定向到一個文件

import re 
import datetime 

# please input from console i have used fixed values 
lbound_date = datetime.datetime.strptime("20160613", "%Y%m%d") 
rbound_date = datetime.datetime.strptime("20160614", "%Y%m%d") 


t= open("1.csv") 
p = re.compile(r'^[0-9]{15}(?P<date>[0-9]{8})') 

out = [] 


for line in t: 
    s = p.match(line) 
if s: 
    sdate_str = s.group("date") 
    # sort the dates to get only ones between range 
    sdate = datetime.datetime.strptime(sdate_str, "%Y%m%d") 
    if sdate >= lbound_date and sdate <= rbound_date: 
     out.append(line) 


for lineout in out: 
    print (lineout) 
+0

如果:從2號線正常縮進縮進就像在你的程序中,難怪爲什麼它不起作用。 '如果你的循環受到傷害。 –

+1

你的問題是什麼? – 2016-11-24 12:24:35

+0

在我的腳本中,我希望腳本詢問,例如請輸入開始日期:並請輸入結束日期:並且輸出應該重定向到一個新文件 – praneethng

回答

0

Indentati on是錯誤的,所以你的循環沒有任何用處。只有最後一行是在端部處理(s是在比賽最後一行):

修復:

for line in t: 
    s = p.match(line) 
    if s: 
     sdate_str = s.group("date") 
     # sort the dates to get only ones between range 
     sdate = datetime.datetime.strptime(sdate_str, "%Y%m%d") 
     if sdate >= lbound_date and sdate <= rbound_date: 
      out.append(line) 

(對不起,這樣的小事答案)

+0

感謝糾正它..現在我的問題是我不想在腳本中給這些日期lbound_date = datetime.datetime.strptime(「20160613」,「%Y%m%d」) rbound_date = datetime.datetime.strptime( 「20160614」,「%Y%m%d」)我想讓腳本在Python 3中詢問輸入日期和回調日期 – praneethng

+0

,使用'date = input(「enter start date」)'提示輸入日期。在python 2中使用'raw_input'。 –

相關問題