BlackJack hat geschrieben:Betr. `os.path.join()`:
Wieso musst Du Anführungstriche in die Zeichenkette hineinbekommen? Das da welche drin waren, war doch gerade das *Problem* in dem anderen Thread!
Ohne ging es aber auch nicht...
BlackJack hat geschrieben:Da war ich für os.path.join() ganz dankbar, auch wenn ich es faktisch als "os.filename.join" mißbrauche...
Nein das tust Du nicht! Das ginge auch gar nicht weil innerhalb von Dateinamen kein Pfadtrenner vorkommen darf. Du musst mehr geändert haben als nur `os.path.join()` zu benutzen. Und diese *andere* Änderung war die Lösung des Problems. Zeig doch mal Code wo `os.path.join()` nur ein einziges Argument bekommt, der ohne die Funktion nicht mehr funktioniert.
Erm... Ich brauche os.path.join(), um
drei Namensteile miteinander zu verbinden:
- "Vorname" - der sich aus der Stelle im Programm ergibt, damit ich zuordnen kann, was an Aenderungen ich sehen sollte,
- die laufende Nummer oder einen variablen Input-Teil,
- ".bmp", damit ich die Datei nachher mit Doppelklick oeffnen kann.
Wenn ich nur
einen "Fixnamen" habe, nehme ich os.path.join()
nicht, weil
das auch ohne geht.
BlackJack hat geschrieben:Ein weiterer Vorteil von Kapselung in Funktionen und Klassen ist auch, dass man die Teile einzeln testen kann bis sie funktionieren.
Hmm... dann muss man aber die ganzen Variablen "mit Hand" einfuettern, oder? Wenn die Klasse auf ein Bild zugreifen soll, braucht sie ja vermutlich weiterhin eins, um sich testen zu lassen?
(Ich teste derzeit noch immer durch das Einfuegen von "print"-Befehlen...
)
Edit:
Eventuell hab ich aber einfach auch nur den Wald vor laute Baeumen nicht gesehen. Ich habe stundenlang (naja, ich glaube, etwas ueber eine Stunde) lang alle Varianten ausprobiert, die mir eingefallen sind, aber es kann sein, dass die ganz schlichte Variante ohne Anfuehrungsstriche aus irgendeinem andern Problem nicht ging und ich das falsch zugeordnet habe. Nachdem ich dann wusste: "Anfuehrungsstriche weglassen funktioniert nicht", habe ich tatsaechlich
erst, als ich zu der os.path.join()-Variante gegriffen habe, die Anfuehrungsstriche wieder komplett weggelassen. Und als das ging, habe ich nicht weiter herumgetestet, weil es ohnehin schon eher spaet war und ich noch andere Sachen im Kopf hatte
. Aber in einem kleinen Trockentest funktioniert zumindest auf diesem Rechner die reine Additionsvariante jetzt auch, d.h.: Kopie.save(Vorname + VariablerTeil + Dateierweiterung, "BMP").