Seite 2 von 2
Re: Dateien aufgrund von Variablen umbenennen, verschieben und löschen
Verfasst: Donnerstag 17. Januar 2019, 22:01
von novregen
Ich komme hier irgendwie nicht weiter, könnte mir jemand helfen ?
ich habe os.path eingebaut, jedoch bekomme ich jetzt den Source_Path Ordner angehängt
also Sourcpath lautet ja volume1/xx und als splitname hängt er mir jetzt xx an , ich komme da nicht an den eigentliche Dateinamen hinter dem Prefix_
Code: Alles auswählen
def main():
today = datetime.date.today()
path, splitname = os.path.split(SOURCE_PATH)
splitname = os.path.splitext(splitname)[0]
for prefix, name_part in [
('ReA', 'RG-Amazon'),
('GsA', 'GS-Amazon'),
('ReT', 'RG-Telekom'),
('NoE', 'Notiz-EDV'),
]:
filenames = glob.iglob(os.path.join(SOURCE_PATH, prefix + '*.pdf'))
for old_filename in filenames:
new_filename = os.path.join(TARGET_PATH, '{}_{}_{}.pdf'.format(today, name_part, splitname))
os.rename(old_filename, new_filename)
if __name__ == '__main__':
main()
Re: Dateien aufgrund von Variablen umbenennen, verschieben und löschen
Verfasst: Donnerstag 17. Januar 2019, 22:45
von __blackjack__
@novregen: Wo steht denn die Information die mit in den Zielnamen soll? In `SOURCE_PATH`? Doch wohl eher nicht.
Re: Dateien aufgrund von Variablen umbenennen, verschieben und löschen
Verfasst: Freitag 18. Januar 2019, 07:51
von novregen
@blackjack wenn Source Path nur der Quellpfad ist und nicht die Dateien darin wiedergibt, dann dort nicht, aber wie gebe ich den Pfad dort als variabel an und begrenze es dann auf den Part nach dem Prefix_ ?
Ich komme da einfach nicht weiter.
Re: Dateien aufgrund von Variablen umbenennen, verschieben und löschen
Verfasst: Freitag 18. Januar 2019, 10:38
von __blackjack__
@novregen: An der Stelle gar nicht, Du brauchst ja einzelne, konkrete Dateinamen um Informationen daraus zu extrahieren. Und diese Dateinamen kennst Du ja vor der Abfrage der Dateinamen noch nicht. Also kannst Du an die Informationen auch erst heran kommen wenn Du die Dateinamen, also Informationen, vorliegen hast.
Re: Dateien aufgrund von Variablen umbenennen, verschieben und löschen
Verfasst: Freitag 18. Januar 2019, 12:25
von novregen
muss ich das in die for schleife reinschreiben, oder wie stelle ich das an ?
Re: Dateien aufgrund von Variablen umbenennen, verschieben und löschen
Verfasst: Freitag 18. Januar 2019, 12:31
von __blackjack__
@novregen: Du brauchst den Dateinamen aus dem Du etwas extrahieren willst. Wo hast Du den denn? Tipp: Den brauchst Du ja zum Umbenennen, also *musst* Du den ja haben. Und irgendwo zwischen dem Punkt wo Du den jeweils einzelnen alten Dateinamen bekommst und dem umbenennen, musst Du da Deine Infos heraus holen. Das muss vor dem umbenennen passieren, weil Du die Infos ja für den neuen Dateinamen benötigst, den Du wiederum zum umbenennen benötigst.
Re: Dateien aufgrund von Variablen umbenennen, verschieben und löschen
Verfasst: Freitag 18. Januar 2019, 12:35
von novregen
hmmm, an dieser stelle muss das doch vorliegen oder ?
Code: Alles auswählen
filenames = glob.iglob(os.path.join(SOURCE_PATH, prefix + '*.pdf'))
wenn ich darunter dies einfüge, bekomme ich alle Dateinamen vom Typ PDF =:-( wie bekomme ich jetzt noch den EINEN richtigen Dateinamen und dann noch die Hürde nur alles hinter dem _
Code: Alles auswählen
splitnames = [os.path.basename(fpath) for fpath in glob.glob("/volume1/xx/*.pdf")]
Re: Dateien aufgrund von Variablen umbenennen, verschieben und löschen
Verfasst: Freitag 18. Januar 2019, 12:53
von __blackjack__
@novregen: Ich geb''s auf. Solltest Du vielleicht auch wenn Du den alten Dateinamen brauchst, und in den paar Zeilen Code es nicht schaffst den zu finden. Wahrscheinlich ist der einfach zu schlecht benannt.

Re: Dateien aufgrund von Variablen umbenennen, verschieben und löschen
Verfasst: Freitag 18. Januar 2019, 22:13
von novregen
ja wahrscheinlich hast du recht, doch ein fertiges Programm....
Hier sollte die Datei vorhanden sein, aber auch mit filenames in dem os.path teil bekomme ich da nichts sinnvolles raus..
Code: Alles auswählen
filenames = glob.iglob(os.path.join(SOURCE_PATH, prefix + '*.pdf'))
Re: Dateien aufgrund von Variablen umbenennen, verschieben und löschen
Verfasst: Samstag 19. Januar 2019, 00:14
von sparrow
"filenames" deutet Mehrzahl an. Sind da nicht alle Dateien drin?
In Python benutzt man sprechende Variablennamen, die direkt auf den Inhalt schließen lassen und leicht verständlich sind. Wie würdest du eine Variable benennen, die auf den alten Dateinamen verweist?
Re: Dateien aufgrund von Variablen umbenennen, verschieben und löschen
Verfasst: Montag 21. Januar 2019, 16:08
von novregen
ich würde sie old_filename benennen, aber ich sehe hier nicht das old_filename irgendwie definiert ist und komme damit auch nicht weiter.
Code: Alles auswählen
filenames = glob.iglob(os.path.join(SOURCE_PATH, prefix + '*.pdf'))
for old_filename in filenames:
new_filename = os.path.join(TARGET_PATH, '{}_{}_{}.pdf'.format(today, name_part, NUR DEN TEXT HINTER _))
os.rename(old_filename, new_filename)
hier kommen alle pdf namen und nicht der eine der gerade umbenannt wird.
Code: Alles auswählen
splitname = [os.path.basename(fpath) for fpath in glob.glob("/volume1/TD/*.pdf")]
Vielleicht könnte mir ja jemand mit einem stück code weiterhelfen, ich würde nur für diese eine Problem eine Lösung suchen und habe mit pyhton bislang nichts gemacht,
deshalb fällt es schwer, das alles so auf einmal anzuwenden.
Re: Dateien aufgrund von Variablen umbenennen, verschieben und löschen
Verfasst: Montag 21. Januar 2019, 17:06
von __blackjack__
@novregen: Du siehst in dem Code `old_filename` nicht? Äh… das steht da aber. Einmal wo der Wert für jeden Schleifendurchlauf definiert wird und einmal da wo der Wert zum umbenennen verwendet wird. Umbenennen würde ohne ja gar nicht funktionieren – woher sollte die `rename()`-Funktion sonst wissen was umbenannt werden soll‽