Hallo,
aber dann verstehe ich den Beitrag von BlackJack nicht. Er schreibt ja, dass bei rename eine Fehlermeldung auftritt. Es ist also richtig, dass der neue Name noch nicht der Datei zugeordnet ist? Also muss ich doch noch ein rename machen?!
detlef
Alle Dateien mit gleichem Dateinamenanfang öffnen
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Ich verstehe nun wiederum Deinen Beitrag nicht und bin verwirrt!
`os.rename` benennt eine Datei um. Fertig. Natürlich tut es das nicht, wenn ein Fehler auftritt. Lies Dir dazu noch mal dieses Posting von mir durch, insbesondere den ersten Absatz! BlackJack hatte den Fehler in seinem ausführlichem Posting darüber *extra* so gelassen, damit Du selber darauf kommst. (Nehme ich mal an)
`os.rename` benennt eine Datei um. Fertig. Natürlich tut es das nicht, wenn ein Fehler auftritt. Lies Dir dazu noch mal dieses Posting von mir durch, insbesondere den ersten Absatz! BlackJack hatte den Fehler in seinem ausführlichem Posting darüber *extra* so gelassen, damit Du selber darauf kommst. (Nehme ich mal an)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Hallo,
also ich hatte das so verstanden, dass ich mit
den neuen Namen definieren kann und ebenfalls der neue Dateiname schon abgespeichert ist?! Weil mit dem os.rename tritt ja ein Fehler auf???
detlef
also ich hatte das so verstanden, dass ich mit
Code: Alles auswählen
for path in glob('Name*'):
old_filename, extension = os.path.splitext(path)
new_filename = old_filename + extension
print old_filename, '->', new_filename
detlef
Zuletzt geändert von Hyperion am Montag 28. Mai 2012, 16:29, insgesamt 1-mal geändert.
Grund: Code in Python-Code Tags gesetzt.
Grund: Code in Python-Code Tags gesetzt.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Hä? Wie sollte das gehen!?! s. meine Kommentare im Code! An welcher Stelle sollte so etwas passieren? Python und Programmiersprachen i.A. sind doch nichts "magisches" und verfügen über hellseherische Fähigkeiten von dem, was Du erreichen willst! Du schreibst *nirgends* irgend etwas in Deinen Code, welches eine Datei auf Deiner Festplatte umbenennt! Wie ich Dir ja schon unlängst schrieb, benutzt man dafür `os.rename`.01detlef hat geschrieben: also ich hatte das so verstanden, dass ich mitden neuen Namen definieren kann und ebenfalls der neue Dateiname schon abgespeichert ist?!Code: Alles auswählen
for path in glob('Name*'): # hier bekommst Du zwei Strings old_filename, extension = os.path.splitext(Pathos) # hier baust Du einen neuen String zusammen new_filename = old_filename + extension # hier gibst Du den String aus print old_filename, '->', new_filename
Ja und was sagt uns das? Denk mal drüber nach und *lies* Dir die von mir bereits genannte Stelle noch mal durch. Sollte das immer noch nicht klar sein, dann schau Dir die Ausgabe mal *exakt* an! Dann solltest Du darauf kommen, wieso dieser Fehler auftritt. Und wenn das nicht hilft, dann überprüfe eben mal in einer Shell, ob Du die Datei, die Du in `old_filename` vermutest, auf Deiner Platte findest.01detlef hat geschrieben: Weil mit dem os.rename tritt ja ein Fehler auf???
Als letzten Tipp: Dein OS kann ja nur Dinge umbenennen, die auch existieren
Und als letzten Hinweis: Bitte benutze für Python-Code die Python-Code-Tags: [ code=python ] [ /code ] (ohne die Leerzeichen)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Hallo,
meinst du, weil die Namen new und old genau identisch sind? Also dann würde ich das so ändern:
Meckert rename also, wenn die beiden Dateinamen identisch sind? Ich dachte, das wird missachtet.
detlef
meinst du, weil die Namen new und old genau identisch sind? Also dann würde ich das so ändern:
Code: Alles auswählen
for path in glob('Name*'):
old_filename, extension = os.path.splitext(path)
new_filename = old_filename[:-6] + extension
print old_filename, '->', new_filename
os.rename(old_filename, new_filename)
detlef
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
*seufz* `old_filename` ist *nicht* der "alte" Dateiname, sondern nur ein *Teil* davon! In `path` befindet sich der "alte" Dateiname - war das so schwer?
Ich habe diesen Namen ja auch genau deswegen kritisiert (s. mein verlinktes Posting, erster Absatz)... dass Du selber auf Deinen falschen Namen reingefallen bist, macht Dir hoffentlich deutlich, dass man Namen immer sinnvoll benennen sollte und dass die Namenswahl allgemein sehr *wichtig* ist
Ich habe diesen Namen ja auch genau deswegen kritisiert (s. mein verlinktes Posting, erster Absatz)... dass Du selber auf Deinen falschen Namen reingefallen bist, macht Dir hoffentlich deutlich, dass man Namen immer sinnvoll benennen sollte und dass die Namenswahl allgemein sehr *wichtig* ist
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Hyperion hat geschrieben:Ich habe diesen Namen ja auch genau deswegen kritisiert (s. mein verlinktes Posting, erster Absatz)... dass Du selber auf Deinen falschen Namen reingefallen bist, macht Dir hoffentlich deutlich, dass man Namen immer sinnvoll benennen sollte und dass die Namenswahl allgemein sehr *wichtig* ist
Phil Karlton hat geschrieben:There are only two hard things in Computer Science: cache invalidation and naming things
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice