Dieter Raber: PYTHON zip system batch

Hallo,

Sorry, eigentlich ist dies ein Crossposting, das auch in comp.lang.python stehen sollte, aber da scheint es nicht angekommen zu sein.

Ich versuche mich gerade in Python, mein Spielpatz ist eine Backupsoftware. Sie muss zunächst nur unter WinXP lauffähig sein, damit mir das Projekt nicht über den Kopf wächst. Im Prinzip soll das so funktionieren, dass eine Anzahl Dateien/Ordner gezippt werden, das Zipfile wird dann in die Backup-Ordner verschoben.

Was das Zippen anbetrifft, habe ich mich an http://www.devshed.com/c/a/Python/Python-UnZipped/ orientiert, die Zipfiles kann ich aber mit Winzip nicht mehr oeffnen. Alternativ gibt es die Ueberlegung, mit system() auf infozip, rar, arj oder makecab zuzugreifen. Dabei stellt sich aber folgendes Problem. Die ganze Application liegt z. Zt in einem Ordner auf dem Desktop. Wenn ich mein Script an der Kommandozeile ausführe, bekomme ich den Fehler, dass C:\Dokumente kein gültiger Befehl sei. Alle Pfade im system-call sind absolut und in Anführungszeichen. Wenn ich anstatt system('befehl') aber system('echo befehl') schreibe und das Ergebnis direkt an der Kommandozeile ausführe, geht das problemlos.

Ich habe natürlich gegoogelt und vor allem im ASPN Python Cookbook einiges gefunden, aber bisher sind meine Kenntnisse noch so, dass ich nicht mal die Hälfte des Gelesenen verstehe.

Ich bin im Moment auch verunsichert, welche Lösung ich anstreben soll, den Python-Zip-Weg oder den system()-Weg. An dem Python-Weg finde ich attraktiv, dass alles alles einem Guss wäre und letztlich auch keine cmd-Fenster aufpoppen. Am system()-Weg hingegen gefällt mir, dass ich den auch an anderen Stellen des Scripts, etwa für xcopy und solche Sachen nutzen könnte. Windows kommt ja mit Einigem an nützlichen Kommandozeilen-Tools, die mir zupass kämen.

Ach ja, noch eine Sache, die ich vor kurzem schonmal erfolglos gepostet habe. Das Backup würde ich am liebsten vor den Shutdown ausführen. Der Task Scheduler hat aber keine entsprechende Option. Ich bin mittlerweile auf shutdown.exe aus dem MS Resource-Kit und PowerOff gestoßen. Ich finde beide nicht ideal für mein Vorhaben, mir wäre es lieber, wenn man das Backup erzwingen könnte. Gibt es dazu irgendwelche Ideen?

Gruß,

Dieter

  1. Hallo.

    Nun, entweder verschiebst du den Programm-Odner auf C:\ Oder C:\Programme, oder du verwendest in der Eingabeaufforderung " ". Dann sollte er selbst Leerzeichen akzeptieren.

    Gruß, Ashura

    1. Hallo Ashura,

      Nun, entweder verschiebst du den Programm-Odner auf C:\ Oder C:\Programme

      Das kann ich nicht, weil man dann das Programm zB. nicht nach C:\Program Files installieren koennte.

      oder du verwendest in der Eingabeaufforderung " ".

      Mach ich ohnehin schon, nuetzt aber nix

      Gruß,

      Dieter

      1. Hallo.

        Das kann ich nicht, weil man dann das Programm zB. nicht nach C:\Program Files installieren koennte.

        Und wenn du einen anderen Pfad verwendest? Es sollte egal sein, solange im Arbeitspfad keine Leerzeichen enthalten sind. Oder liegt das Problem anderweitig vor?

        Gruß, Ashura

        1. Hallo Ashura,

          Das Problem entsteht nicht an der Kommandozeile und liegt demnach auch nicht am Arbeitsverzeichnis. Ich bin auch sicher, das Python damit umgehen kann, ich weiss bloss nicht, wie. Ich finde auch nicht akzeptabel ein Programm zu schreiben, dass nur einem bestimmten Verzeichnis laeuft, oder nur dann, wenn das Verzeichnis keine Leerzeichen enthaelt.

          Gruß,

          Dieter

          1. Hallo.

            Das Problem entsteht nicht an der Kommandozeile und liegt demnach auch nicht am Arbeitsverzeichnis. Ich bin auch sicher, das Python damit umgehen kann, ich weiss bloss nicht, wie. Ich finde auch nicht akzeptabel ein Programm zu schreiben, dass nur einem bestimmten Verzeichnis laeuft, oder nur dann, wenn das Verzeichnis keine Leerzeichen enthaelt.

            Und wie steht es mit Umgebungsvariablen, wie %programfiles% und %systemroot% ? Ansonsten fällt mir auf die Schnelle nichts ein.

            Gruß, Ashura

            1. Hallo Ashura,

              Und wie steht es mit Umgebungsvariablen, wie %programfiles% und %systemroot% ? Ansonsten fällt mir auf die Schnelle Klingt gut, das werde ich ausprobieren.

              Gruß,

              Dieter