2017-06-07 3 views
1

ich auf meinem Skript folgendes var bin mit Ausgang auf einePython Ordnerstruktur basiert auf aktuellen Datum erstellen

output = "/opt/output" 

ich es einstellen möchten, senden Sie die Ausgabe in Bezug auf den Zeitpunkt aktuelle Datum des Abzugs zu machen das Skript es wie dies

output = "/opt/output/year/month/day" 

strukturiert sein soll ich nicht sicher bin, ob ich die richtige Art und Weise hier verwendet werde verwendet, i den folgenden Ansatz

output = "/opt/output/" + today.strftime('%Y%m%d') 

irgendwelche Tipps hier

Antwort

0

i kapier von

today = datetime.datetime.now() 
year = today.strftime("%Y") 
month=today.strftime("%m") 
day=today.strftime("%d") 
output = "/opt/output/" + year +"/" + month + "/" + day 

das ist gearbeitet, um mich in Ordnung

0

today.strftime('%Y%m%d') würde Drucken heutigen Datum als 20170607. Aber ich denke, Sie wollen es gedruckt als 2017/06/07. Sie könnten die Schrägstriche explizit hinzufügen und so etwas drucken?

output = "/opt/output/" + today.year +"/" + today.month + "/" + today.date

+0

nicht i Ordner erstellen möchten Drucken basierend auf heute Tag wie // opt/Ausgabe/2017/07.06 immer relativ zum aktuellen Datum, – Jecki

+0

ich war mehr artikulieren sollen. Die Zeichenfolge, die von dieser Zeile zurückgegeben wird, würde das Format 20170607 haben. – morfindel

+0

Ich importierte die Uhrzeit und das Datum, aber immer noch NameError: name 'today' ist nicht definiert – Jecki

0

Ich empfehle Ihnen, den vollständigen Zeitstempel verwenden, anstatt nur das Datum mit:

import os 

mydir = os.path.join(output, datetime.datetime.now().strftime('%Y/%m/%d_%H-%M-%S')) 

Es ist ratsam, es zu tun auf diese Weise, weil was hast passieren, wenn Ihr Skript mehr als einmal pro Tag läuft ? Sie sollten einen Zähler oder wenigstens etwas aus (wenn Sie nicht den vollständigen Zeitstempel wollen), die eine Variable erhöht wird, wenn der Ordner bereits vorhanden ist.

Sie können mehr über lesen os.path.joinhere

Wie pro einen Ordner erstellen, können Sie es wie folgt tun:

if not os.path.exists(directory): 
    os.makedirs(mydir) 
+0

basierend auf dem heutigen Tag // opt/output/2017/06/07 immer relativ zum aktuellen Datum, wenn das Verzeichnis bereits existiert, wird nichts passieren und Skript wird einige Dateien dort platzieren – Jecki

1

Ich werde vorschlagen os.path.join und os.path.sep mit:

import os 
. 
. 
. 
full_dir = os.path.join(base_dir, today.strftime('%Y{0}%m{0}%d').format(os.path.sep)) 
Verwandte Themen