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/compact.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 sem_3/SYSTEME/TP3/HUFFMAN/compact.py (limited to 'sem_3/SYSTEME/TP3/HUFFMAN/compact.py') diff --git a/sem_3/SYSTEME/TP3/HUFFMAN/compact.py b/sem_3/SYSTEME/TP3/HUFFMAN/compact.py new file mode 100644 index 0000000..0d57b91 --- /dev/null +++ b/sem_3/SYSTEME/TP3/HUFFMAN/compact.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python3 + +import os,sys,re +from subprocess import call + +def parcours (cible,fichierdir,init): + if os.path.isdir(cible): + liste=os.listdir(cible) + for fichier in liste : + fichier = cible+"/"+fichier + parcours(fichier,fichierdir,init) + else : + tmp = open(cible,'rb') + if init[0]=="/" : + fichierdir.write(b"\n--"+bytes(cible[len(re.search("(^\/.*\/).+",init).group(0))+1:],'UTF-8')+b"--\n") + else : + fichierdir.write(b"\n--"+bytes(cible,"UTF-8")+b"--\n") + print(cible) + byte=tmp.read() + fichierdir.write(byte) + tmp.close() + +if len(sys.argv)!= 2 : + print("Parametres incorrects, syntaxe : ./compact.py fichier\n") + exit() +cible = sys.argv[1] +fichier = open(".compactageencours",'ab') +parcours(cible,fichier,cible) +destination = re.search("(\w+\.?\w+)$",sys.argv[1]).group(1)+".comp" +call(["./huf", ".compactageencours", destination]) +call(["rm",".compactageencours"]) +fichier.close() -- cgit v1.2.3