Nachdem ich mich in optparse eingearbeitet habe und von euch ein paar Fragen super beantwortet kam, möchte ich euch mein neustes Script zeigen.
Das Script kann die gewöhnlichen Archive unter linux sehr einfach entpacken, und hilft mir, weil ich nicht die ganzen Befehl im Kopf habe um alle möglichen Archive zu entpacken.
Ich würde mich über Anregungen und Tipps freuen!:D
Danke!
mfg benny
Code: Alles auswählen
#!/usr/bin/python
# -*-coding=utf-8 -*-
from optparse import OptionParser
import os, sys
#Endung:Enpackbefehl+Leerzeichen
befehl = {"tar":"tar xfv ", "gz":"bunzip ", "tar.gz":"tar xfvz ",
"bz2":"bunzip2 ", "zip":"unzip ", "rar":"unrar ",
"tar.bz2":"tar xfvj "}
def extract(x,y):
# x = Dateiendung
# y = Pfad zur Datei
#(von main() übergeben worden)
try:
befehl[x]
except KeyError:
print "Es wurde kein kompatibles Archiv erkannt :-(\n"
sys.exit(0)
print x + " Archiv wurde erkannt..."
endbefehl = befehl[x] + y
os.system(endbefehl)
def main():
parser = OptionParser(usage="%prog [Options]", version="%prog 1.0")
parser.add_option("-f", "--file", dest="filename",
help="Pfad zum Archiv FILENAME")
(options, args) = parser.parse_args()
#Beispiel für args: ['/home/benny/.gnome/gnome-vfs/.trash_entry.test']
#args wird zusammengefügt.
pfad = " ".join(args)
#hier wird der Dateiname vom Pfad abgesplitet
list = os.path.basename(pfad).rsplit('.', 2)
#Hier wird von der Datei der Name entfern, sodass nur noch
#die Endung übrig bleibt:
#z.B. ["foo", "tar", "gz"] wird zu ["tar", "gz"]
list.pop(0)
#Hier wird die Endung wieder zusammgegefügt.
#z.B: ["tar", "gz"]-->tar.gz
extension = ".".join(list)
#Ruft die extract() mit der extension als Argument auf
extract(extension,pfad)
if __name__ == '__main__':
main()