Exemplo n.º 1
0
def add_files_in_dir(nom_fuz, noms, start_dir, printer=0):
    #start_dir numero de ligne ou commence le dossier
    fusioned = file(nom_fuz, "rb")
    copy = file(get_path(nom_fuz) + "copy", "wb")
    ligne = 0
    if printer: print "copie du debut du fichier de fusion"
    for i in range(start_dir - 3):
        copy.write(fusioned.readline())
    string = fusioned.readline()[:-1]
    copy.write(
        int_len(int_base(base_int(string, 254) +
                         len(noms), 254), len(string)) + "\n")
    for nom in noms:
        if printer: print nom, "\ncalcule de la taille du fichier"
        ligne = 0
        for i in file(nom, "rb").read_lines():
            ligne += 1
        copy.write(get_name(nom) + "\n" + int_base(ligne, 254) + "\n")
        if printer: print "copie du fichier"
        for i in file(nom, "rb").read_lines():
            copy.write(i)
        copy.write("\n")
    if printer: print "copie de la fin du fichier de fusion"
    for i in fusioned.read_lines():
        copy.write(i)
    copy.close()
    remove(nom_fuz)
    rename(get_path(nom_fuz) + "copy", nom_fuz)
    if printer: print "creation de l'index du fichier de fusion"
    create_index_dir(nom_fuz)
Exemplo n.º 2
0
def conv_time(valeur,unite="s",conv="m"):
	"""temps en unite= "s", "m" ou "h"---> temps en conv = "s", "m" ou "h" """
	if unite == "h":
		valeur = valeur * 3600
	elif unite == "m":
		valeur = valeur * 60

	if conv == "s":
		return valeur
	if conv == "h":
		h = valeur / 3600
		m = valeur  / 60 % 60
	else:
		m = valeur / 60
	s = valeur % 60
	if conv == "h":
		return int_len(h)+":"+int_len(m)+":"+int_len(s)
	else:
		return int_len(m)+":"+int_len(s)
Exemplo n.º 3
0
def conv_time(valeur,unite="s",conv="m"):
	"""temps en unite= "s", "m" ou "h"---> temps en conv = "s", "m" ou "h" """
	if unite == "h":
		valeur = valeur * 3600
	elif unite == "m":
		valeur = valeur * 60

	if conv == "s":
		return valeur
	if conv == "h":
		h = valeur / 3600
		m = valeur  / 60 % 60
	else:
		m = valeur / 60
	s = valeur % 60
	if conv == "h":
		return int_len(h)+":"+int_len(m)+":"+int_len(s)
	else:
		return int_len(m)+":"+int_len(s)
Exemplo n.º 4
0
def create_index_dir(nom, nom_dir="",start=-1, stop=-1):
	if nom_dir:
		name = nom.replace("\\","/")+":"+nom_dir.replace("\\","/").replace("/",":")+".zid"
		fichier = file(name,"wb")
	else: fichier = file(".".join(nom.split(".")[:-1])+".zid","wb")
	fusioned = file(nom,"rb")
	if stop > -1 < start: fusioned.read(1)
	dirs, nbr_dir, len_nbr = get_arborescence(fusioned, start, stop)
	fichier.write("1"+int_base(len_nbr)+"\n")

	for i,files in enumerate(files_in_dir(fusioned,(dirs, nbr_dir, len_nbr), start, stop)):
		c_dir, files = files
		nbr_files = len(files)
		if nbr_files:
			fichier.write(int_len(int_base(dirs.index(c_dir)),len_nbr)+int_base(nbr_files,254)+"\n")
			x = 0
			for f, start, stop in files: fichier.write(f+"\n"+int_base(start,254)+"\n"+int_base(stop,254)+"\n")
Exemplo n.º 5
0
def create_index_dir(nom, nom_dir="", start=-1, stop=-1):
    if nom_dir:
        name = nom.replace("\\", "/") + ":" + nom_dir.replace(
            "\\", "/").replace("/", ":") + ".zid"
        fichier = file(name, "wb")
    else:
        fichier = file(".".join(nom.split(".")[:-1]) + ".zid", "wb")
    fusioned = file(nom, "rb")
    if stop > -1 < start: fusioned.read(1)
    dirs, nbr_dir, len_nbr = get_arborescence(fusioned, start, stop)
    fichier.write("1" + int_base(len_nbr) + "\n")

    for i, files in enumerate(
            files_in_dir(fusioned, (dirs, nbr_dir, len_nbr), start, stop)):
        c_dir, files = files
        nbr_files = len(files)
        if nbr_files:
            fichier.write(
                int_len(int_base(dirs.index(c_dir)), len_nbr) +
                int_base(nbr_files, 254) + "\n")
            x = 0
            for f, start, stop in files:
                fichier.write(f + "\n" + int_base(start, 254) + "\n" +
                              int_base(stop, 254) + "\n")
Exemplo n.º 6
0
def add_files_in_dir(nom_fuz, noms, start_dir, printer=0):
      #start_dir numero de ligne ou commence le dossier
      fusioned = file(nom_fuz, "rb")
      copy = file(get_path(nom_fuz)+"copy", "wb")
      ligne = 0
      if printer: print "copie du debut du fichier de fusion"
      for i in range(start_dir-3): copy.write(fusioned.readline())
      string = fusioned.readline()[:-1]
      copy.write(int_len(int_base(base_int(string, 254) + len(noms), 254), len(string))+"\n")
      for nom in noms:
            if printer: print nom,"\ncalcule de la taille du fichier"
            ligne = 0
            for i in file(nom, "rb").read_lines(): ligne += 1
            copy.write(get_name(nom)+"\n"+int_base(ligne,254)+"\n")
            if printer: print "copie du fichier"
            for i in file(nom, "rb").read_lines(): copy.write(i)
            copy.write("\n")
      if printer: print "copie de la fin du fichier de fusion"
      for i in fusioned.read_lines(): copy.write(i)
      copy.close()
      remove(nom_fuz)
      rename(get_path(nom_fuz)+"copy", nom_fuz)
      if printer: print "creation de l'index du fichier de fusion"
      create_index_dir(nom_fuz)
Exemplo n.º 7
0
def fusion_dirfile(dirs, files=[], name=""):
    if dirs:
        if not name: name = dirs[0]
        if name[-1] == "/": name = name[:-1]
        len_ext = len(get_ext(name))
        liste = [encode(get_name(name))]
        paths = [encode(name)]
        if get_ext(name) != "fuz": name += ".fuz"

        for dossier in dirs:
            new_paths = get_paths(dossier)
            lim = (len("/".join(new_paths[0][:-1].split("/")[:-1])) + 1) * int(
                bool(new_paths[0][:-1].count("/")))
            for i in new_paths:
                liste.append(encode(liste[0] + "/" + i[lim:-1]))
                paths.append(i[:-1])

        nbr_dir = int_base(len(liste))
        len_nbr = len(nbr_dir)
        i = 0
        while i < len(paths):
            index = len("/".join(liste[i].split("/")[:-1])) + 1
            if not i: index -= 1

            dossier = encode(liste[i].split("/")[-1])
            index_dossier = len(dossier)
            path = liste[i][:index + index_dossier]
            for ind, p in enumerate(liste):
                if p[:index + index_dossier] == path:
                    liste[ind] = p[ : index] +\
                       p[index : index+index_dossier].replace(dossier, int_len(int_base(i), len_nbr)) +\
                       p[index+index_dossier : ]
            i += 1

        liste[0] = encode(liste[0][-len_nbr * 2 - 1:-len_nbr - 1] +
                          (get_name(paths[0]) +
                           ".")[:-len_ext * bool(len_ext) - 1])
        for i, e in enumerate(liste[1:]):
            liste[i + 1] = e[-len_nbr * 2 - 1:-len_nbr - 1] + encode(
                get_name(paths[i + 1]))

        fusioned = file(name, "wb")
        fusioned.write("1" + int_base(len_nbr) + int_len(nbr_dir, len_nbr))

        for i in liste:
            fusioned.write(i + "\n")

        for i, e in enumerate(liste):
            if i:
                fichiers = get_dirfile(paths[i])[1]
                if fichiers:
                    fusioned.write(int_len(int_base(i), len_nbr))
                    fusioned.write(int_base(len(fichiers)) + "\n")
                    print "\n" * 2, paths[i]
                    print
                    fusion_files(fichiers, paths[i], fusioned)
            else:
                fusioned.write("0" * len_nbr)
                if files:
                    fusioned.write(int_base(len(files), 254) + "\n")
                    fusion_files(files, "", fusioned)
                else:
                    fusioned.write("0\n")

        if files == None:
            fusioned.write(int_len(int_base(len(liste)), len_nbr))
            fusioned.write(int_base(len(files), 254) + "\n")
            fusion_files(files, "", fusioned)
        fusioned.close()
        return name
    else:
        return fusion_files(files, file_fuz=name)
Exemplo n.º 8
0
def get_time(seconds=""):
      if type(seconds) != type(0.): temp = localtime()
      else: temp = localtime(seconds)
      return "%s:%s:%s"%(int_len(temp[3]), int_len(temp[4]), int_len(temp[5]))
Exemplo n.º 9
0
def get_time(seconds=""):
      if type(seconds) != type(0.): temp = localtime()
      else: temp = localtime(seconds)
      return "%s:%s:%s"%(int_len(temp[3]), int_len(temp[4]), int_len(temp[5]))
Exemplo n.º 10
0
def fusion_dirfile(dirs, files=[], name=""):
	if dirs:
		if not name: name = dirs[0]
		if name[-1] == "/": name = name[ : -1]
		len_ext = len(get_ext(name))
		liste = [encode(get_name(name))]
		paths = [encode(name)]
		if get_ext(name) != "fuz": name += ".fuz"

		for dossier in dirs:
			new_paths = get_paths(dossier)
			lim = (len("/".join(new_paths[0][:-1].split("/")[:-1]))+1)*int(bool(new_paths[0][:-1].count("/")))
			for i in new_paths :
				liste.append(encode(liste[0] + "/" + i[lim:-1]))
				paths.append(i[:-1])

		nbr_dir = int_base(len(liste))
		len_nbr = len(nbr_dir)
		i=0
		while i < len(paths):
			index = len("/".join(liste[i].split("/")[:-1]))+1
			if not i : index -= 1

			dossier = encode(liste[i].split("/")[-1])
			index_dossier = len(dossier)
			path = liste[i][:index+index_dossier]
			for ind, p in enumerate(liste) :
				if p[ : index+index_dossier] == path:
					liste[ind] = p[ : index] +\
								p[index : index+index_dossier].replace(dossier, int_len(int_base(i), len_nbr)) +\
								p[index+index_dossier : ]
			i+=1
		
		liste[0] = encode(liste[0][-len_nbr*2-1:-len_nbr-1]+(get_name(paths[0])+".")[ : -len_ext *bool(len_ext)-1])
		for i,e in enumerate(liste[1 : ]):
			liste[i+1] = e[-len_nbr*2-1:-len_nbr-1]+encode(get_name(paths[i+1]))

		fusioned = file(name,"wb")
		fusioned.write("1"+int_base(len_nbr)+int_len(nbr_dir, len_nbr))

		for i in liste : fusioned.write(i+"\n")

		for i, e in enumerate(liste):
			if i:
				fichiers = get_dirfile(paths[i])[1]
				if fichiers:
					fusioned.write(int_len(int_base(i),len_nbr))
					fusioned.write(int_base(len(fichiers))+"\n")
					print "\n"*2,paths[i]
					print
					fusion_files(fichiers, paths[i], fusioned)
			else:
				fusioned.write("0"*len_nbr)
				if files:
					fusioned.write(int_base(len(files), 254)+"\n")
					fusion_files(files, "", fusioned)
				else: fusioned.write("0\n")

		if files == None:
			fusioned.write(int_len(int_base(len(liste)),len_nbr))
			fusioned.write(int_base(len(files), 254)+"\n")
			fusion_files(files, "", fusioned)
		fusioned.close()
		return name
	else: return fusion_files(files,file_fuz=name)