Dateien Umbenennen mit Python
Hallo,
ich würde gerne Dokumente die bestimmte Kürzel haben umbennen, in einen anderen Ordner speichern und dann die Urpsrungsdatei löschen.
Ein einfaches umbenennen bekomme ich hin aber ich würde gerne nach mehreren Kürzeln suchen und entsprechend umbenennen lassen.
Datei enthält ReA_ -> YYYY_MM_TT_RG_Amazon_Ursprungstext
Datei enthält Telekom -> YYYY_MM_TT_RG_Telekom
Datei enthält Str_ -> YYYY_MM_TT_RG_Hausstrom
etc.
Wie muss ich erweitern ?
import os
import datetime
src = '/volume1/homes/XX/test.pdf'
dst = '/volume1/homes/XX/%s-text.pdf' % datetime.datetime.now()
os.rename(src, dst)
Vielen Dank.
ich würde gerne Dokumente die bestimmte Kürzel haben umbennen, in einen anderen Ordner speichern und dann die Urpsrungsdatei löschen.
Ein einfaches umbenennen bekomme ich hin aber ich würde gerne nach mehreren Kürzeln suchen und entsprechend umbenennen lassen.
Datei enthält ReA_ -> YYYY_MM_TT_RG_Amazon_Ursprungstext
Datei enthält Telekom -> YYYY_MM_TT_RG_Telekom
Datei enthält Str_ -> YYYY_MM_TT_RG_Hausstrom
etc.
Wie muss ich erweitern ?
import os
import datetime
src = '/volume1/homes/XX/test.pdf'
dst = '/volume1/homes/XX/%s-text.pdf' % datetime.datetime.now()
os.rename(src, dst)
Vielen Dank.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 397620
Url: https://administrator.de/contentid/397620
Ausgedruckt am: 21.11.2024 um 20:11 Uhr
10 Kommentare
Neuester Kommentar
Tipp :
- os.listdir
- shutil.move()
Und jetzt selbst Doku lesen und lernen, dann lernst du auch was und nicht nur Copy n' Paste ...
Gruß A.
- os.listdir
- shutil.move()
Und jetzt selbst Doku lesen und lernen, dann lernst du auch was und nicht nur Copy n' Paste ...
Gruß A.
Hallo,
https://www.pythoncentral.io/how-to-rename-move-a-file-in-python/
https://www.pythonforbeginners.com/os/python-the-shutil-module
https://www.tutorialspoint.com/How-to-move-a-file-from-one-folder-to-ano ...
https://stackoverflow.com/questions/41826868/moving-all-files-from-one-d ...
Gruß,
Peter
Zitat von @novregen:
ich würde gerne Dokumente die bestimmte Kürzel haben umbennen, in einen anderen Ordner speichern und dann die Urpsrungsdatei löschen.
shutil hilft dir bestimmt weiter.ich würde gerne Dokumente die bestimmte Kürzel haben umbennen, in einen anderen Ordner speichern und dann die Urpsrungsdatei löschen.
https://www.pythoncentral.io/how-to-rename-move-a-file-in-python/
https://www.pythonforbeginners.com/os/python-the-shutil-module
https://www.tutorialspoint.com/How-to-move-a-file-from-one-folder-to-ano ...
https://stackoverflow.com/questions/41826868/moving-all-files-from-one-d ...
Gruß,
Peter
Zitat von @novregen:
Aber bei shutil geht es doch nur um das verschieben oder ?
Mir geht es im ersten Step eher darum das ich mehrere Umbenennungsvariablen einbauen kann und bei gleichen Treffern _1 _2 angehangen wird.
Oder kopiere ich den Teil jetzt 10mal für alle Möglichkeiten ?
if elif else ist dein Freund!Aber bei shutil geht es doch nur um das verschieben oder ?
Mir geht es im ersten Step eher darum das ich mehrere Umbenennungsvariablen einbauen kann und bei gleichen Treffern _1 _2 angehangen wird.
Oder kopiere ich den Teil jetzt 10mal für alle Möglichkeiten ?
https://www.programiz.com/python-programming/if-elif-else#elif-syntax
Besuche mal einen Programmiergrundkurs.
Zitat von @novregen:
Aber bei shutil geht es doch nur um das verschieben oder ?
Mir geht es im ersten Step eher darum das ich mehrere Umbenennungsvariablen einbauen kann und bei gleichen Treffern _1 _2 angehangen wird.
Oder kopiere ich den Teil jetzt 10mal für alle Möglichkeiten ?
Aber bei shutil geht es doch nur um das verschieben oder ?
Mir geht es im ersten Step eher darum das ich mehrere Umbenennungsvariablen einbauen kann und bei gleichen Treffern _1 _2 angehangen wird.
Oder kopiere ich den Teil jetzt 10mal für alle Möglichkeiten ?
Servus,
# imports
import os
import datetime
import re
# create todays date
today = datetime.date.today().strftime("%Y-%m-%d")
# source dir
sourceDir = "/path/to/folder"
# extension of files
strExtension = ".pdf"
# for each file in source directory
for file in os.listdir(sourceDir):
# if file ends with extension
if file.endswith(strExtension):
# variable for new name
strNewName = ""
# check for strings in filename and create new name accordingly
if "ReA" in file:
strNewName = today + "_Amazon_" + file
elif "Telekom" in file:
strNewName = today + "_Telekom_" + file
elif "Str_" in file:
strNewName = today + "_RG_Hausstrom_" + file
# if filename should be changed
if strNewName != "":
# append number with with format _[0-9]* to the end of the basename if file already exists
cnt = 1
while os.path.isfile(os.path.join(sourceDir,strNewName)):
strNewName = re.sub('_\d+$','',os.path.splitext(strNewName),1) + "_" + str(cnt) + os.path.splitext(filePath)[1]
cnt += 1
# sourcepath
sourcePath = os.path.join(sourceDir,file)
# destination path
destPath = os.path.join(sourceDir,strNewName)
# actually rename the file
os.rename(sourcePath,destPath)
Grüße Uwe
Zitat von @novregen:
Hallo Uwe,
vielen Dank für das Script funktioniert sehr gut. Einzig der neue Name enthält noch den vollen Text.
Wolltest du ja laut deinem Post habenHallo Uwe,
vielen Dank für das Script funktioniert sehr gut. Einzig der neue Name enthält noch den vollen Text.
Zitat
YYYY_MM_TT_RG_Amazon_Ursprungstext
Oder hab ich das missinterpretiert?Wenn ja, Zeilen 18 -23 sind dein Freund, entferne das + File jeweils am Ende und mach noch ein ".PDF" dran.
Für dein letzt genanntes Beispiel, z.B.:
strNewName = today + "_Amazon_" + file.split("_",1)[1]
Sicher, das was du dazu brauchst habe ich hier schon mal gepostet!
Linux: Automatisiert Posteingang checken und Skript ausführen
Grüße Uwe
Linux: Automatisiert Posteingang checken und Skript ausführen
Grüße Uwe