2017-05-15 1 views
-2

Ich denke, das ist einfach, aber mein Skript funktioniert nicht. Ich denke, es wird einfacher, wenn ich Ihnen zeigen, was ich will: Ich habe ein Skript will (in Python), die das tut:Scannen Sie ein Verzeichnis und übertragen Sie Dateien

Ich habe ein Verzeichnis wie:

boite_noire/ 
....helloworld/ 
....test1.txt/ 
....test2.txt/ 

Und nachdem das Skript ausgeführt wird, ich würde wie so etwas wie:

boite_noire/ 
helloworld/ 
....test1/ 
........test1_date.txt 
....test2/ 
........test2_date.txt 

und wenn ich hinzufügen, eine andere test1.txt wie:

boite_noire/ 
helloworld/ 
....test1/ 
........test1_date.txt 
....test2/ 
........test2_date.txt 
....test1.txt 

Das nächste Mal, wenn ich r un das Skript:

boite_noire/ 
helloworld/ 
....test1/ 
........test1_date.txt 
........test1_date.txt 
....test2/ 
........test2_date.txt 

Ich schrieb dieses Skript:

script

Aber os.walk Dateien in Verzeichnissen lesen und dann ein Verzeichnis als Datei mit dem Namen erstellen, und ich nicht wollen, dass :(

Kann mir bitte jemand helfen?

+0

Fügen Sie Ihren Code als Text nicht Bild – kuro

Antwort

0

Sie können jede Datei durchlaufen und in das richtige Verzeichnis verschieben. Dies funktioniert auf einem Linux-System (nicht sicher über Windows - vielleicht besser, die shuttil.move Befehl zu verwenden).

import os 
import time 

d = 'www/boite_noire' 

date = time.strftime('%Y_%m_%d_%H_%M_%S') 
filesAll = os.listdir(d) 
filesValid= [i for i in filesAll if i[-4:]=='.txt'] 

for f in filesValid: 

    newName = f[:-4]+'_'+date+'.txt' 
    try: 
     os.mkdir('{0}/{1}'.format(d, f[:-4])) 
    except: 
     print 'Directory {0}/{1} already exists'.format(d, f[:-4]) 
    os.system('mv {0}/{1} {0}/{2}/{3}'.format(d, f, f[:-4], newName)) 

Dies ist, was der Code tun ist:

  • alle Datei in einem Verzeichnis angegeben finden die Erweiterung .txt
  • Für jede gültige Datei
  • Check:
    • Erstellen Sie einen neuen Namen, indem Sie Datum/Uhrzeit anhängen
    • Erstellen Sie das Verzeichnis, wenn es vorhanden
    • die Datei in das Verzeichnis verschieben (den Namen zu ändern, wie es bewegt wird)
+0

Nizza es funktioniert perfekt nur ein kleines Problem ist: Wenn das Verzeichnis bereits existiert, würde ich die Datei im Verzeichnis (mit dem alten) hinzufügen – Scott

+0

Ja, der Code tut dies. – Robbie

+0

Oh ja, du hast recht Ich habe nicht aktualisiert ^^ thx so viel – Scott

Verwandte Themen