[gelöst] Bessere Lösung für weiterlaufenden Zähler?

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.
BlackJack

Nur nochmal zur Demonstration was `os.path.join()` macht und warum man damit Namen, Nummer und Erweiterung nicht zusammenfügen kann, zumindest nicht so wie gewünscht:

Code: Alles auswählen

In [7]: os.path.join('muster')
Out[7]: 'muster'

In [8]: os.path.join('muster') + '42' + '.bmp'
Out[8]: 'muster42.bmp'

In [9]: 'muster' + '42' + '.bmp'
Out[9]: 'muster42.bmp'

In [10]: os.path.join('muster', '42', '.bmp')
Out[10]: 'muster/42/.bmp'
Du scheinst ab und zu "programming by accident" zu betreiben. Das ist nicht so gut. Wenn es Probleme gibt, dann probiere die Sachen am besten interaktiv in einer Python-Shell aus.
merlin_emrys
User
Beiträge: 110
Registriert: Freitag 3. März 2006, 09:47

Code: Alles auswählen

>>> vorname = "muster"
>>> nummer = str(42)
>>> Dateierweiterung = ".bmp"
>>> os.path.join(vorname + nummer + extension)
'muster42.bmp'
>>> 
Geht doch :-) . Da ich "vorname" und die laufende Nummer eh in dieser Weise "referenziere", bleibt nur die Zeile mit der Dateierweiterung, die ich mir sparen koennte... und der Zugriff auf das Modul os, natuerlich.
Du scheinst ab und zu "programming by accident" zu betreiben. Das ist nicht so gut. Wenn es Probleme gibt, dann probiere die Sachen am besten interaktiv in einer Python-Shell aus.
Wenn ich mit Bildern hantiere, die in mehreren Schritten modifiziert werden, scheint mir das teilweise arg umstaendlich. Immerhin muss ich dann jeweils zusehen, dass die Shell die letzte Modifikation mitbekommt... Da ist es fuer mich insgesamt "bequemer", das Programm jeweils durchlaufen zu lassen, zumal ich dann auch gleich mitbekomme, wenn eine Aenderung irgendwo anders Problem bereitet (was bei mir durchaus noch passieren kann - und vermutlich mal wieder ein Hinweis darauf ist, dass ich mich nochmal mit dem Aspekt "Kapselung" beschaeftigen sollte... :-o )
Nirven
User
Beiträge: 130
Registriert: Mittwoch 10. Mai 2006, 08:18
Wohnort: Bremerhaven

Nur das 'join()' an dieser Stelle nichts tut...

Code: Alles auswählen

>>> vorname = "muster"
>>> nummer = str(42)
>>> extension = ".bmp"
>>> os.path.join(vorname + nummer + extension)
'muster42.bmp'
>>> vorname + nummer + extension
'muster42.bmp'
Übrigens wage ich deine Ausgabe zu bezweifeln, 'Dateierweiterung' etwas zuweisen und dann 'extension' benutzen geht schief ;)
merlin_emrys
User
Beiträge: 110
Registriert: Freitag 3. März 2006, 09:47

Nirven hat geschrieben: Übrigens wage ich deine Ausgabe zu bezweifeln, 'Dateierweiterung' etwas zuweisen und dann 'extension' benutzen geht schief ;)
Jetzt bin ich abgehaengt... was meinst Du damit? *voellig verwirrt*
Nirven
User
Beiträge: 130
Registriert: Mittwoch 10. Mai 2006, 08:18
Wohnort: Bremerhaven

merlin_emrys hat geschrieben:>>> vorname = "muster"
>>> nummer = str(42)
>>> Dateierweiterung = ".bmp"
>>> os.path.join(vorname + nummer + extension)
'muster42.bmp'
Der Code, so wie du ihn geschrieben hast, produziert einen Fehler, da 'extension' nicht bekannt ist. Du hast ".bmp' an 'Dateierweiterung' gebunden, benutzt dann aber 'extension' im Aufruf von 'join()', damit kann zumindestens mein Python nichts anfangen ;)
merlin_emrys
User
Beiträge: 110
Registriert: Freitag 3. März 2006, 09:47

Nirven hat geschrieben:
merlin_emrys hat geschrieben:>>> vorname = "muster"
>>> nummer = str(42)
>>> Dateierweiterung = ".bmp"
>>> os.path.join(vorname + nummer + extension)
'muster42.bmp'
Der Code, so wie du ihn geschrieben hast, produziert einen Fehler, da 'extension' nicht bekannt ist. Du hast ".bmp' an 'Dateierweiterung' gebunden, benutzt dann aber 'extension' im Aufruf von 'join()', damit kann zumindestens mein Python nichts anfangen ;)
Ach, da... jetzt hab ich's. Ja, Du hast recht. Kommt davon, wenn ich mit der Shell arbeite. Ich hatte "Dateierweiterung" fuer fruehere Tests auch definiert, und weil Python sich das gemerkt hat, ist es mir nicht aufgefallen... I am terribly sorry... :oops:
Antworten