2016-11-24 1 views
-2

i eine Eingabedatei 1.csvPython-Skript Schlüssel im Datumsbereich aus einer Datei und leiten Sie die Ausgabe

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 

i die Datensätze nur von 20.160.613 bis 20160614.

Die bekommen wollen, müssen Programm ich geschrieben habe, ich brauche das Startdatum und Enddatum in den Code einzugeben, statt dass ich den Benutzer fragen, sollte das Startdatum und Enddatum und leiten Sie die Ausgabe in eine Datei

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

wenn Die Einrückung ist wie in Ihrem Programm, kein Wunder, warum es nicht funktioniert. 'wenn s'soll in deiner Schleife sein. –

+1

Was ist Ihre Frage? –

+0

in meinem Skript möchte ich das Skript fragen, für zB bitte geben Sie das Startdatum ein: Geben Sie bitte das Enddatum ein und die Ausgabe sollte in eine neue Datei umleiten – praneethng

Antwort

0

Indentati eingeben an ist falsch, also macht deine Schleife nichts nützliches. Erst letzte Zeile wird am Ende verarbeitet (s das Spiel für die letzte Zeile ist):

fix: indent richtig aus 2. Zeile:

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) 

(sorry für eine solche triviale Antwort)

+0

Danke für es zu korrigieren .. jetzt meine Frage ist, ich möchte nicht geben diese Daten in das Skript lbound_date = datetime.datetime.strptime ("20160613", "% Y% m% d") rbound_date = datetime.datetime.strptime ("20160614", "% Y% m% d") Ich möchte, dass das Skript das lbound date und das rbound date – praneethng

+0

in python 3 anfragt. Verwenden Sie 'date = input (" Startdatum eingeben ")', um nach einem Datum zu fragen. Verwenden Sie 'raw_input' in Python 2. –

Verwandte Themen