summaryrefslogtreecommitdiff
path: root/sem_3/SYSTEME/TP3/HUFFMAN/compact.py
diff options
context:
space:
mode:
authorGaspard Coulet <gaspard.coulet@mines-ales.org>2021-04-28 23:05:53 +0200
committerGaspard Coulet <gaspard.coulet@mines-ales.org>2021-04-28 23:05:53 +0200
commit9fe033ea88c2f705ec18c232873d056e0c229d72 (patch)
tree0647dc8c51610c7336c88c04de2068ea14b21e17 /sem_3/SYSTEME/TP3/HUFFMAN/compact.py
Initial commit
Diffstat (limited to 'sem_3/SYSTEME/TP3/HUFFMAN/compact.py')
-rw-r--r--sem_3/SYSTEME/TP3/HUFFMAN/compact.py32
1 files changed, 32 insertions, 0 deletions
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()