Script von Chatgpt

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Zeref94
User
Beiträge: 1
Registriert: Montag 4. Dezember 2023, 03:21

Moin,

Ich habe ein Problem.
Ich hab im Grunde genommen keine Ahnung von Scrips, allerdings brauche ich eins um 493 Bilder im .png Format umbenennen zu können.

und ich hoffe das Ihr mir helfen könnt.

Das Setup ist wie folgt:
-Ich hab ein Ordner mit den Bildern auf mein Desktop, Der Ordner heißt "1"
-Dann hab ich eine Textdatei erstellt mit 493 Titel, ein Titel Pro Zeile, die Datei Liegt auch auf den Desktop und heißt "2"

Chatgpt hat mir folgendes Script gegeben

import os

def umbenenne_bilder(bilder_ordner, textdatei_pfad):
# Lese die Namen aus der Textdatei
with open(textdatei_pfad, 'r', encoding='utf-8') as f:
namen = f.read().splitlines()

# Überprüfe, ob die Anzahl der Namen mit der Anzahl der Bilder übereinstimmt
if len(namen) != 493:
print("Fehler: Die Anzahl der Namen in der Textdatei sollte 493 sein.")
return

# Umbenennung der Bilder
for i in range(1, 494):
bild_pfad_alt = os.path.join(bilder_ordner, f"{i}.png")
neuer_name = f"{namen[i-1]}_{i}.png" # Du kannst das Umbenennungsmuster anpassen
bild_pfad_neu = os.path.join(bilder_ordner, neuer_name)
os.rename(bild_pfad_alt, bild_pfad_neu)
print(f"Umbenannt: {i}.png zu {neuer_name}")

if __name__ == "__main__":
# Pfade zu den Bildern und zur Textdatei mit Namen
bilder_ordner_pfad = 'Pfad/Zu/Deinem/Bilder/Ordner' # Passe dies an
textdatei_pfad = 'Pfad/Zu/Deiner/Textdatei.txt' # Passe dies an

# Funktion aufrufen
umbenenne_bilder(bilder_ordner_pfad, textdatei_pfad)



Ich denke ich muss die Ganzen Rauten "#" entfernen, bin mir aber unsicher :D

Und am ende hab ich meine Pfande eingefügt.


import os

def umbenenne_bilder(bilder_ordner, textdatei_pfad):
i
with open(textdatei_pfad, 'r', encoding='utf-8') as f:
namen = f.read().splitlines()


if len(namen) != 493:
print("Fehler: Die Anzahl der Namen in der Textdatei sollte 493 sein.")
return


for i in range(1, 494):
bild_pfad_alt = os.path.join(bilder_ordner, f"{i}.jpg")
neuer_name = f"{namen[i-1]}_{i}.png"
bild_pfad_neu = os.path.join(bilder_ordner, neuer_name)
os.rename(bild_pfad_alt, bild_pfad_neu)
print(f"Umbenannt: {i}.png zu {neuer_name}")

if __name__ == "__main__":
bilder_ordner_pfad = C:\Users\dusti\Desktop\1
textdatei_pfad = C:\Users\dusti\Desktop\2.txt


umbenenne_bilder(bilder_ordner_pfad, textdatei_pfad)


Jetzt die Frage warum funktioniert das nicht ? :D

Wäre super nett wenn Ihr mir Helfen könntet.

Danke im vorfeld.
Benutzeravatar
grubenfox
User
Beiträge: 435
Registriert: Freitag 2. Dezember 2022, 15:49

Code: Alles auswählen

Jetzt die Frage warum funktioniert das nicht ? :D
Das funktioniert nicht , weil Chatgpt gar keine Ahnung vom Programmieren hat und was nicht funktioniert steht in der Fehlermeldung die beim Ausführen erscheint.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Die Dinger mit der Raute sind Kommentar, kannst du drin lassen. Code bitte mit code-tags posten, das ist der </>-Knopf im vollstaendigen Editor. Und die Fehlermeldung ebenfalls in Gaenze, und auch in Code-Tags. Zu guter Letzt wuerde ich ChatGPT noch beauftragen, statt Umbennneng eine Kopie vorzunehmen, denn sonst hast du bei jedem Fehler einen Abbruch & einen Teil der Daten kopiert, den anderen aber nicht. Womit deine Vorgehensweise kaputt geht, weil sie ja fix von den 493 Bildern ausgeht.
Benutzeravatar
noisefloor
User
Beiträge: 3875
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

lass' das Skript auf keinen Fall so laufen. Alleine aus dem Grunde, weil _keinerlei_ Sortierung und Zuordnung erfolgt, d.h. du hast keinerlei Garantie, dass die 1. Datei die umbenannt werden soll, auch die ist, für die der 1. Eintrag in deiner Liste gedacht ist.

Programmieren ist nicht raten und ChatGPT kommt auch bekanntlich nicht auf 100% Genauigkeit. Wenn man Glück hat liegt man vielleicht bei 80% oder so.

Die Frage hier ist IMHO, ob die Zeit damit verbringen willst, ein Skript, dass du nicht verstehst, anzupassen oder ob du die Zeit nicht dafür nutzt, die Datei händisch umzubenennen. Wenn du bereits eine Datei mit 494 Zeilen angelegt hast und die Zeilen von Hand eingetippt hast hättest du auch direkt die Dateien umbenennen können.

Es gibt für alle gängigen Betriebssysteme Hilfsprogramme, die auf das Umbenennen von Dateien spezialisiert sind. Die haben dann ggf. auch eine GUI, wo man Umbenennungsmuster hinterlegen und ggf. prüfen kann. Was IMHO der bessere Ansatz ist als ein Skript nutzen zu wollen, was man nicht versteht.

Gruß, noisefloor
Benutzeravatar
__blackjack__
User
Beiträge: 13181
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

In neu geschriebenen Code würde man auch `pathlib` verwenden, statt der Funktionen aus `os` und `os.path`. Etwas das ChatGPT auch recht konsequent *nicht* macht, weil die verpackten C-Funktionen seit Anbeginn der Zeitrechnung existieren (also was das Internet angeht) und ChatGPT deshalb unverhältnismässig mehr Beispiele davon ”gelernt” hat.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
Antworten