#!/usr/bin/env python3 import os, sys,re from subprocess import call def creerdossier(path): result =re.split("/",path) for i in range(len(result)-1): if i >= 1 : result[i]= result[i-1]+"/"+result[i] if not (os.path.exists(result[i])): call(["mkdir",result[i]]) def decompactdistant(fichier, fichierdest): os.system("./dehuf "+fichier+" > .decompactencours") premierdos = fichierdest call(["mkdir",premierdos]) decompact = open(".decompactencours","r") destfile=decompact for line in decompact.readlines()[1:]: tmp = line.encode() if line[0]=="-" and line[1]=="-": estuneentete=re.search("^--(.*)--$",line) if estuneentete: destfile.close() creerdossier(premierdos+"/"+estuneentete.group(1)) destfile=open(premierdos+"/"+estuneentete.group(1),"w") else : destfile.write(line) def decompacthere(fichier): os.system("./dehuf "+fichier+" > .decompactencours") premierdos = re.search("(\w+)\.?\w*.comp$",fichier).group(1) call(["mkdir",premierdos]) decompact = open(".decompactencours","r") destfile=decompact for line in decompact.readlines()[1:]: tmp = line.encode() if line[0]=="-" and line[1]=="-": estuneentete=re.search("^--(.*)--$",tmp) if estuneentete: destfile.close() creerdossier(premierdos+"/"+estuneentete.group(1)) destfile=open(premierdos+"/"+estuneentete.group(1),"w") else : destfile.write(line) if len(sys.argv)==2: decompacthere(sys.argv[1]) elif len(sys.argv)==3: decompactdistant(sys.argv[1],sys.argv[2]) else: print("Parametres incorrects, syntaxe : ./decompact.py fichiercomp [destination] \n (Destination est optionnel)") exit() call(["rm",".decompactencours"])