1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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"])
|