Seite 1 von 1

7zip öffnen mit der entsprechenden Tar-file

Verfasst: Freitag 1. Juli 2011, 07:24
von bluelagoon
Hallo,
ich hab ne Frage und zwar wie geb ich 7zip beim öffnen mit das das Archiv sofort angezeigt wird?
mein Code bisher

Code: Alles auswählen

import os
os.system('C:\\Programme\\7-Zip\\7zFM.exe SicherungDiff-04-03-2011.tar.gz')
7 zip öffnet sich auch nur das SicherungDiff...tar nicht
könnte mir da jemand helfen?
danke

Neuer Stand bin weiter gekommen mit dem Modul subprocess

Code: Alles auswählen

previewfile = subprocess.Popen("C:\\Programme\\7-Zip\\7zFM.exe C:\\Windows")
so wie sag ich ihm jetz das C\\Windows ne Variable is? =/

Re: 7zip öffnen mit der entsprechenden Tar-file

Verfasst: Freitag 1. Juli 2011, 08:34
von CM

Code: Alles auswählen

subprocess.Popen(["C:\\Programme\\7-Zip\\7zFM.exe", "C:\\Windows"])
:?:

Falls das nicht weiterhilft, hilft bestimmt ein Blick in die Doku ;-)

Re: 7zip öffnen mit der entsprechenden Tar-file

Verfasst: Freitag 1. Juli 2011, 08:40
von bluelagoon
der Code an sich funktioniert ja
aber der Pfad wo die Datei liegt die geöffnet wird ändert sich ständig und steht deshalb in einer Textdatei
sprich statt C:\\Windows
müsste dort %s stehen.

Code: Alles auswählen

class sevenzip():
    def __init__(self):
        self.mac = None
        file = None
        if 'windows' in platform.system().lower():
            for line in os.popen(r"C:\WINDOWS\system32\ipconfig.exe /all"):
                match = re.search('((?:[0-9A-Fa-f]{2}-){5}[0-9A-Fa-f]{2})', line)
                if match != None:
                    self.mac = match.group()
                    break
        if self.mac == None:
            print >> sys.stderr, '''ERROR: Coulnd't retrieve MAC-address!'''
            exit(1)
        if os.path.isabs(config_file):
            self.config_file = config_file
        else:
            self.config_file = os.path.join(os.path.dirname(os.path.abspath(__file__)), config_file)      
    def read_config(self):
      try:
            file = open(self.config_file)
            for line in file.readlines():
                if line.lower().strip().startswith("boottime"):
                    choice = re.split('^boottime\s*=\s*([0-9]+)', line.lower().strip())[1]
                elif line.lower().strip().startswith("destination="):
                    dest = re.split('^[dD][eE][sS][tT][iI][nN][aA][tT][iI][oO][nN]\s*=\s*(.+)\s*$', line.lower().strip())[1]
            file.close()	
        except Exception, e:
            print >> sys.stderr, '''Error: File "%s" (configuration file) couldn't be read!\nQuitting.''' % self.config_file
    def sevenfile(self):
        previewfile = subprocess.Popen("C:\\Programme\\7-Zip\\7zFM.exe %s" % self.config_file)
nun kommt zwar kein Fehler mehr aber 7zip öffnet auch nicht :/

Re: 7zip öffnen mit der entsprechenden Tar-file

Verfasst: Freitag 1. Juli 2011, 10:04
von CM
1. Tipp: Schau' noch mal ganz genau hin - sind Dein und mein Popen-Statement syntaktisch gleichwertig?
2. Liest sich Dein Code etwas seltsam. Vielleicht wäre es eine gute Idee PEP8 und im Tutorial Exception Handling nochmal durchzulesen.
3. Ist 'file' build-in.
4. Kennt re einen Flag namens IGNORECASE
5. Gibt es sicher auch, aber ich höre mal hier auf. ;-)

HTH
Christian

PS Von 7zip habe ich keine Ahnung, ich weiß noch nicht einmal, ob es solche Argumente unterstützt ;-).

Re: 7zip öffnen mit der entsprechenden Tar-file

Verfasst: Freitag 1. Juli 2011, 10:09
von bluelagoon
naja mit dem Befehl subprocess poppen öffnet es sich unter der Batch kann man Parameter wie l, p, a, e angeben.
man kanns auch öffnen mit dem kompletten Pfad ich möchte nur den kompletten Pfad in ne Variable da sich der Pfad eben ständig ändern kann und ich so das ganze Script absuchen muss. Naja ich Google mal weiterhin danke


dein Code und meiner sind eig gleich. das heisst ich kanns auch ohne [ ] öffnenich würde nur statt dem kompletten pfad einfach nur %s self.pathfile eben anhängen

Re: 7zip öffnen mit der entsprechenden Tar-file

Verfasst: Freitag 1. Juli 2011, 11:13
von cofi
bluelagoon hat geschrieben:dein Code und meiner sind eig gleich. das heisst ich kanns auch ohne [ ] öffnenich würde nur statt dem kompletten pfad einfach nur %s self.pathfile eben anhängen
Du solltest du Doku wirklich mal lesen die CM verlinkt hat, um herauszufinden, was `subprocess.Popen' eigentlich erwartet. Tipp: Dein Code funktioniert -- wenn er denn 100%ig funktioniert -- nur zufaellig.