Seite 2 von 5
Re: Verzeichnisse kopieren
Verfasst: Dienstag 20. Juli 2010, 16:18
von cofi
Py-Prog hat geschrieben:Last mich raten ich hab (wieder mal) vergessen das da noch '\\' dazugehört.
Nein du sollst nicht raten, genauso solltest du keine Zeichen in den Quelltext streuen und hoffen dass es klappt, sondern einfach anschauen, was da steht (`print`, `logging`, `Debugger`, ...) dir dann ueberlegen wie es dazu kam und dann das richtige Gegenmittel waehlen.
Da ist keine Magie dabei.
Re: Verzeichnisse kopieren
Verfasst: Dienstag 20. Juli 2010, 16:20
von Py-Prog
Ha, eigentlich geht es aber mich würde nur noch interesieren warum sind viele (nicht alle) dateien 0kb groß (also leer)?
Das ist die Fehlermeldung:
Code: Alles auswählen
Traceback (most recent call last):
File "C:\Dokumente und Einstellungen\Adrian\Desktop\Fastbackup.auto.pyw", line 91, in <module>
backup('D:\\Py-Prog\\Python\\Projekte\\Backup\\Backupinfo\\')
File "C:\Dokumente und Einstellungen\Py-Prog\Desktop\backup.auto.pyw", line 36, in backup
Kopieren(Pfad, Ziel)
File "C:\Dokumente und Einstellungen\Py-Prog\Desktop\Fastbackup.auto.pyw", line 87, in Kopieren
Kopieren(path+'\\'+i, ziel+'\\'+i)
File "C:\Dokumente und Einstellungen\Py-Prog\Desktop\backup.auto.pyw", line 87, in Kopieren
Kopieren(path+'\\'+i, ziel+'\\'+i)
File "C:\Dokumente und Einstellungen\Py-Prog\Desktop\backup.auto.pyw", line 87, in Kopieren
Kopieren(path+'\\'+i, ziel+'\\'+i)
File "C:\Dokumente und Einstellungen\Py-Prog\Desktop\backup.auto.pyw", line 89, in Kopieren
filesave(ziel+'\\'+i, fileopen(path+'\\'+i))
File "C:\Dokumente und Einstellungen\Py-Prog\Desktop\backup.auto.pyw", line 68, in fileopen
dtt=f.read()
File "C:\Python31\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 320: character maps to <undefined>
(kommt nur wein ich bei fileopen() die try: anweisung weglasse.
Re: Verzeichnisse kopieren
Verfasst: Dienstag 20. Juli 2010, 17:53
von BlackJack
@Py-Prog: Am Traceback sieht man ziemlich deutlich, dass Du nicht `os.path.join()` verwendest sondern jetzt ``pfad + '\\' + i`` -- sag mal warum sollte man Dir noch helfen wollen, wenn Du entgegen der Ratschläge doch alles ganz furchtbar anders machst!?
Re: Verzeichnisse kopieren
Verfasst: Dienstag 20. Juli 2010, 18:30
von Py-Prog
@BlackJack ich hab's jetzt mit join gemacht und jetzt kommt aber wieder das gleiche, nur mit den kleinen änderungen.
Re: Verzeichnisse kopieren
Verfasst: Dienstag 20. Juli 2010, 18:58
von /me
Py-Prog hat geschrieben:
Code: Alles auswählen
File "C:\Dokumente und Einstellungen\Py-Prog\Desktop\backup.auto.pyw", line 68, in fileopen
dtt=f.read()
File "C:\Python31\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 320: character maps to <undefined>
Kann es sein, dass du aus irgendeinem kuriosen Grund versuchst, den Dateiinhalt selber auszulesen und zu schreiben, statt die passenden Funktionen aus der Python-Library zu verwenden?
Re: Verzeichnisse kopieren
Verfasst: Mittwoch 21. Juli 2010, 15:33
von Py-Prog
Wenn du meinst das ich für das öffnen und speichern eine eingene funktion definiert hab dan ja.
Re: Verzeichnisse kopieren
Verfasst: Mittwoch 21. Juli 2010, 15:47
von cofi
Und warum oeffnest du die Dateien, wenn du sie eigtl kopieren willst? Es gibt schliesslich `shutil`, `os`, ... _darauf_ wollte /me raus
Warum du das benutzen willst ist folgendes: Wenn du die Dateien als Textdateien öffnest, wird der Inhalt zu Unicode-Objekten dekodiert, da du die Dateien nicht explizit mit einem Encoding oeffnest (zb mit `codecs.open`) wird mit dem System-Encoding gearbeitet: `cp1252`. Deine Dateien scheinen inkompatible Encodings (z.b. UTF-8 oder UTF-16) zu nutzen und dann ergibt sich dein Fehler.
Wenn du die Schrotflinte nicht von deinen Beinen wegbewegen willst und das lieber weiterhin zu Fuss erledigst, solltest du die Dateien wenigstens als Binaerdatei oeffnen um nicht alles kaputt zu machen.
Re: Verzeichnisse kopieren
Verfasst: Mittwoch 21. Juli 2010, 15:54
von Py-Prog
@cofi Danke es geht jetzt.
Re: Verzeichnisse kopieren
Verfasst: Mittwoch 21. Juli 2010, 15:59
von Hyperion
Py-Prog hat geschrieben:@cofi Danke es geht jetzt.
Wie hast Du es denn jetzt gelöst? Ich hoffe mal mit den dafür gedachten Funktionen

Re: Verzeichnisse kopieren
Verfasst: Mittwoch 21. Juli 2010, 16:14
von Py-Prog
Nein ich hab's doch nicht (ganz) gelöst, einmal hat's geklapt alle bilder sind am ziel angekommen aber beim zweiten mal kommt das:
(Ich hab's nicht mit shutil gemacht sondern einfach in meinen funktionen das
mit
ausgetauscht und das bein speichern natülich auch. (shutil nim ja das gleiche her also ist's doch egal)
Re: Verzeichnisse kopieren
Verfasst: Mittwoch 21. Juli 2010, 16:27
von Dav1d
Oh mann, dir ist schon klar, dass du alle Metadaten verlierst? <ironie>Und warum, gibt es in der std. nur das Modul shutil, es ist doch völlig wertlos?</ironie>
Btw. es wurden dir schon gute Wege gennant um das Problem zu lösen, z.b. Post #2 von lunar: shutil.copytree
Re: Verzeichnisse kopieren
Verfasst: Mittwoch 21. Juli 2010, 16:33
von Hyperion
Py-Prog hat geschrieben:
ausgetauscht und das bein speichern natülich auch. (shutil nim ja das gleiche her also ist's doch egal)
Woher weißt Du das? Quelle?
Re: Verzeichnisse kopieren
Verfasst: Mittwoch 21. Juli 2010, 16:41
von cofi
Code: Alles auswählen
def copyfile(src, dst):
"""Copy data from src to dst"""
if _samefile(src, dst):
raise Error("`%s` and `%s` are the same file" % (src, dst))
with open(src, 'rb') as fsrc:
with open(dst, 'wb') as fdst:
copyfileobj(fsrc, fdst)
def copyfileobj(fsrc, fdst, length=16*1024):
"""copy data from file-like object fsrc to file-like object fdst"""
while 1:
buf = fsrc.read(length)
if not buf:
break
fdst.write(buf)
Weil es (oberflaechlich) so ist (Python 2.6 Code). Allerdings nur bei `shutil.copyfile` _UND_ die Doku erwaehnt das da auch ausdruecklich, alle anderen `copy` Funktionen kuemmern sich um mehr.
Re: Verzeichnisse kopieren
Verfasst: Mittwoch 21. Juli 2010, 16:46
von Py-Prog
Hyperion hat geschrieben:Py-Prog hat geschrieben:
ausgetauscht und das bein speichern natülich auch. (shutil nim ja das gleiche her also ist's doch egal)
Woher weißt Du das? Quelle?
Na ja, ich schau mir gern mal die Dateien der Module an und da hab ich bei shutil das gefunden. Was wundert dich das so? (vieleicht weil ich sonst dumme frage stelle wie man wirgendwas macht?)
Re: Verzeichnisse kopieren
Verfasst: Mittwoch 21. Juli 2010, 16:50
von Hyperion
Py-Prog hat geschrieben:
Na ja, ich schau mir gern mal die Dateien der Module an und da hab ich bei shutil das gefunden. Was wundert dich das so? (vieleicht weil ich sonst dumme frage stelle wie man wirgendwas macht?)
Ist bei Anfängern eher selten der Fall - zumal das ganze Prozedere sonderbar ist, da Du ja das Modul offensichtlich evaluiert hast, es aber dennoch nicht nutzt!

Re: Verzeichnisse kopieren
Verfasst: Mittwoch 21. Juli 2010, 16:53
von Py-Prog
Hyperion hat geschrieben:Py-Prog hat geschrieben:
Na ja, ich schau mir gern mal die Dateien der Module an und da hab ich bei shutil das gefunden. Was wundert dich das so? (vieleicht weil ich sonst dumme frage stelle wie man wirgendwas macht?)
Ist bei Anfängern eher selten der Fall - zumal das ganze Prozedere sonderbar ist, da Du ja das Modul offensichtlich evaluiert hast, es aber dennoch nicht nutzt!

Ab wann zählt man den zu den "Normalen" oder "Profis"?
Re: Verzeichnisse kopieren
Verfasst: Mittwoch 21. Juli 2010, 16:57
von Hyperion
Py-Prog hat geschrieben:Hyperion hat geschrieben:Py-Prog hat geschrieben:
Na ja, ich schau mir gern mal die Dateien der Module an und da hab ich bei shutil das gefunden. Was wundert dich das so? (vieleicht weil ich sonst dumme frage stelle wie man wirgendwas macht?)
Ist bei Anfängern eher selten der Fall - zumal das ganze Prozedere sonderbar ist, da Du ja das Modul offensichtlich evaluiert hast, es aber dennoch nicht nutzt!

Ab wann zählt man den zu den "Normalen" oder "Profis"?
k.A. Ich hatte irgend wie den Eindruck (iirc auch in nem anderen Thread), Du wärst Anfänger. Mag mich auch irren und ist im Grunde genommen auch irrelevant

Ich bin zwar kein Neuling, mache aber immer noch einen haufen Fehler

Re: Verzeichnisse kopieren
Verfasst: Mittwoch 21. Juli 2010, 16:58
von DaMutz
Py-Prog hat geschrieben:Hyperion hat geschrieben:Py-Prog hat geschrieben:
Na ja, ich schau mir gern mal die Dateien der Module an und da hab ich bei shutil das gefunden. Was wundert dich das so? (vieleicht weil ich sonst dumme frage stelle wie man wirgendwas macht?)
Ist bei Anfängern eher selten der Fall - zumal das ganze Prozedere sonderbar ist, da Du ja das Modul offensichtlich evaluiert hast, es aber dennoch nicht nutzt!

Ab wann zählt man den zu den "Normalen" oder "Profis"?
Wenn du mehr Fragen beantwortest als stellst bist du "Normal"
mir ist immernoch ein Rätsel warum man nicht generell Dateien mit "with" öffnet, wenn man sie denn überhaupt öffnen muss.
Re: Verzeichnisse kopieren
Verfasst: Mittwoch 21. Juli 2010, 16:59
von DasIch
Py-Prog hat geschrieben:Ab wann zählt man den zu den "Normalen" oder "Profis"?
Wenn deine Fragen sich nur noch auf Algorithmen beschränken und du zusammen mit den anderen den IRC Channel mit Offtopic füllst.
Re: Verzeichnisse kopieren
Verfasst: Mittwoch 21. Juli 2010, 17:02
von Py-Prog
Ich will dich nur mal drauf hinweisen das durch fragen stellen das wissen auch wächst. Und man lernt nicht nur aus Büchern.(da steht nicht alles drinnen, sondern zu großem teil das gleiche wie in andern auch)