From 9fe033ea88c2f705ec18c232873d056e0c229d72 Mon Sep 17 00:00:00 2001 From: Gaspard Coulet Date: Wed, 28 Apr 2021 23:05:53 +0200 Subject: Initial commit --- sem_3/SYSTEME/TP3/HUFFMAN/decompact.py | 55 ++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 sem_3/SYSTEME/TP3/HUFFMAN/decompact.py (limited to 'sem_3/SYSTEME/TP3/HUFFMAN/decompact.py') diff --git a/sem_3/SYSTEME/TP3/HUFFMAN/decompact.py b/sem_3/SYSTEME/TP3/HUFFMAN/decompact.py new file mode 100644 index 0000000..1cc3bc3 --- /dev/null +++ b/sem_3/SYSTEME/TP3/HUFFMAN/decompact.py @@ -0,0 +1,55 @@ +#!/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"]) -- cgit v1.2.3