robuster Weg Dateien und Verzeichnisse zu kopieren

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.
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Bisher hast du dich immer davor gedrückt, deine Anforderungen aufzuschreiben. Aber ohne die zu kennen, kann man dir auch nicht helfen.
M.Miehtke
User
Beiträge: 10
Registriert: Sonntag 16. August 2020, 20:23

@ sparrow @Sirius3
Ziel:
Backup von ein paar Dateien und Ordner aus FireFox Profilen mit Hilfe von Python machen

Randbedingungen:
laufen auf Linux MacOS Windows
keine Betriebssystem -versions spezifischen Zusätze/Programme - nur Python
möglichst Filesystem unabhängig
Chronjob fähig
commadline interface
open source
funktioniert immer :D

Wenn ich wissen wollte, wie ich shutil für einen bestimmten Fall ans laufen kriege,
dann würde ich ja danach fragen.
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Ich sehe da überhaupt gar nichts, warum das nicht mit shutil.copytree funktionieren sollte.
Wie gesagt, benenn das Zielverzeichnis um, falls es exisitiert und lösche es nach dem erfolgreichen Kopieren oder benenn es wieder zurück.
Die 6 oder 7 Zeilen Code stehen in gar keinem Verhältnis zu der Zeit, die du hier in eine sinnlose Suche investierst.
M.Miehtke
User
Beiträge: 10
Registriert: Sonntag 16. August 2020, 20:23

@ sparrow
dann zeig mal nen Beispiel: Backup auf USB Stick
kopiert wird unter Linux von ext4 nach Fat32
also von mit unix Attributen zu simulieren (mount) Attributen

wenn das alles so einfach ist die 6 bis 7 Zeile Code kannst Du ja schnell mal Posten,

keine Angst ich kenn die Antwort schon
hast … nicht
kannst .. .nicht
willst .. nicht
machst nicht meine Arbeit
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Na, auf die Art kommst du bestimmt gut durch das Leben.
Vielleicht solltest du mal versuchen dein Problem in Worte zu fassen, denn Dateien auf eine USB-Stick zu kopieren ist nun wirklich kein Hexenwerk:

Code: Alles auswählen

sparrow@sparrow-VirtualBox:/tmp$ mount | grep vfat
/dev/sdb1 on /media/sparrow/MULTIBOOT type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)
sparrow@sparrow-VirtualBox:/tmp$ ls /media/sparrow/MULTIBOOT/test_
ls: Zugriff auf '/media/sparrow/MULTIBOOT/test_' nicht möglich: Datei oder Verzeichnis nicht gefunden
sparrow@sparrow-VirtualBox:/tmp$ cat test.py
import shutil

shutil.copytree("/home/sparrow/.local/share", "/media/sparrow/MULTIBOOT/test_")


sparrow@sparrow-VirtualBox:/tmp$ python3 test.py
sparrow@sparrow-VirtualBox:/tmp$ ls /media/sparrow/MULTIBOOT/test_
baloo              kate     konsole   nano             sddm          user-places.xbel
dolphin            kded5    kscreen   RecentDocuments  thumbnail.so  user-places.xbel.bak
kactivitymanagerd  klipper  kxmlgui5  remoteview       Trash         user-places.xbel.tbcache
sparrow@sparrow-VirtualBox:/tmp$ 
Das brauchte jetzt genau eine Zeile Code.
Und wo liegt nun tatsächlich dein Problem?
M.Miehtke
User
Beiträge: 10
Registriert: Sonntag 16. August 2020, 20:23

@ sparrow
na wenn Du die Problematik jetzt noch nicht erkannt hast, dann kann man Dir nicht helfen.

Aber in gutes hat die Rumgeeiere .
Zu kopieren ist der falsche Lösungsansatz.
Arciv mit tarfile Module erstellen ist der bessere Weg.
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Na, du hast gesagt, du willst Dateien auf einen USB-Stick mit FAT-Dateisystem kopieren. Das geht halt _einfach so_.
Da muss man auch keine Ausnahmen behandeln. Es geht halt einfach, wenn das Verzeichnis nicht da ist.

Das Problem ist nicht, das wir dein Problem nicht verstehen. Das Problem ist, dass du das schlicht nicht kommunizierst.
Benutzeravatar
DeaD_EyE
User
Beiträge: 1240
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

M.Miehtke hat geschrieben: Montag 17. August 2020, 18:55 @ sparrow
na wenn Du die Problematik jetzt noch nicht erkannt hast, dann kann man Dir nicht helfen.

Aber in gutes hat die Rumgeeiere .
Zu kopieren ist der falsche Lösungsansatz.
Arciv mit tarfile Module erstellen ist der bessere Weg.
Willst Du uns mit aller Gewalt verarschen?!
Das ist erst gemeint.

Erst kommst Du mit einem Schnipsel von Stackoverflow, wo die LÖSUNG bereits steht und weiter unten angemerkt wird, dass man die hässliche Übergangslösung ab Python 3.8 nicht mehr benötigt.
Dann sind hier funktionierende Beispiele gepostet worden. Ich habe selbst eins gepostet und auch vorher getestet.
Dann gefiel Dir die Antwort nicht und erzählst was von unterschiedlichen Dateisystemen.
Als man Dir gezeigt hat, dass Du Blödsinn erzählst, kommst Du mit dem nächsten Knaller um die Ecke.

Wie wir mit Python Dateien in Archive packen, ist uns bekannt und kostet vielleicht 5 Minuten Dokumentation lesen, wenn man nicht alles im Kopf hat.
Aber wieso sollen wir uns sinnlos mit irgendwas beschäftigen, wenn Du nicht nur alles besser weißt, sondern auch besser kannst.


Dann mach einfach, aber hör auf uns irgendwas zu unterstellen.


PS: Ich bin auch nicht immer mit jedem einer Meinung. Aber wir diskutieren das auf technischer Ebene aus und sind nicht hinterher beleidigt, wenn der andere eine bessere/einfachere Lösung hat.
So ist das nun mal, wenn man nicht ständig seine Schwanzlänge vergleicht. Ich bin froh darüber andere Ideen zu verinnerlichen oder auch mal gesagt zu bekommen, dass XY einfach Bullshit ist + technische Begründung usw...
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten