je cherche à trouver le meilleure moyen de stocker des données arborescentes.
Un cas typique d'utilisation est un filesystem (unix pour l'exemple).
Il y a une racine / contenant des dossiers et des fichiers.
Certains dossiers, /usr /home /lib, peuvent contenir des dossiers et des
fichiers, etc...
Le but est d'obtenir la somme totale de fichier et dossiers a chaque
étage et de faire plusieurs manipulations ensuite sur ces données
(entre autre pouvoir faire un graphe avec graphviz simplement)
J'ai d'imposé en entrée un fichier plat contenant une arborescence:
/
/home
/home/kevin
/home/kevin/prog.py
/usr
/usr/bin
etc...
je cherche à trouver le meilleure moyen de stocker des données arborescentes.
Un cas typique d'utilisation est un filesystem (unix pour l'exemple).
Il y a une racine / contenant des dossiers et des fichiers.
Certains dossiers, /usr /home /lib, peuvent contenir des dossiers et des
fichiers, etc...
Le but est d'obtenir la somme totale de fichier et dossiers a chaque
étage et de faire plusieurs manipulations ensuite sur ces données
(entre autre pouvoir faire un graphe avec graphviz simplement)
J'ai d'imposé en entrée un fichier plat contenant une arborescence:
/
/home
/home/kevin
/home/kevin/prog.py
/usr
/usr/bin
etc...
je cherche à trouver le meilleure moyen de stocker des données arborescentes.
Un cas typique d'utilisation est un filesystem (unix pour l'exemple).
Il y a une racine / contenant des dossiers et des fichiers.
Certains dossiers, /usr /home /lib, peuvent contenir des dossiers et des
fichiers, etc...
Le but est d'obtenir la somme totale de fichier et dossiers a chaque
étage et de faire plusieurs manipulations ensuite sur ces données
(entre autre pouvoir faire un graphe avec graphviz simplement)
J'ai d'imposé en entrée un fichier plat contenant une arborescence:
/
/home
/home/kevin
/home/kevin/prog.py
/usr
/usr/bin
etc...
Bonjour,
je cherche à trouver le meilleure moyen de stocker des données arborescentes.
Un cas typique d'utilisation est un filesystem (unix pour l'exemple).
Il y a une racine / contenant des dossiers et des fichiers.
Certains dossiers, /usr /home /lib, peuvent contenir des dossiers et des
fichiers, etc...
Le but est d'obtenir la somme totale de fichier et dossiers a chaque
étage et de faire plusieurs manipulations ensuite sur ces données
(entre autre pouvoir faire un graphe avec graphviz simplement)
J'ai d'imposé en entrée un fichier plat contenant une arborescence:
/
/home
/home/kevin
/home/kevin/prog.py
/usr
/usr/bin
etc...
Pour le premier niveau, pas de problèmes, je peux faire un dictionnaire:
root = {}
for dir in list:
if root.has_key(dir):
root[dir]=root[dir]+1
else:
root[dir]=1
et root contient la somme des fichiers et dossiers, et ça se processe
ensuite très facilement.
Mais pour le second niveau (et les suivants), j'ai du mal à trouver
une bonne méthode.
Avez vous une idée?
Bonjour,
je cherche à trouver le meilleure moyen de stocker des données arborescentes.
Un cas typique d'utilisation est un filesystem (unix pour l'exemple).
Il y a une racine / contenant des dossiers et des fichiers.
Certains dossiers, /usr /home /lib, peuvent contenir des dossiers et des
fichiers, etc...
Le but est d'obtenir la somme totale de fichier et dossiers a chaque
étage et de faire plusieurs manipulations ensuite sur ces données
(entre autre pouvoir faire un graphe avec graphviz simplement)
J'ai d'imposé en entrée un fichier plat contenant une arborescence:
/
/home
/home/kevin
/home/kevin/prog.py
/usr
/usr/bin
etc...
Pour le premier niveau, pas de problèmes, je peux faire un dictionnaire:
root = {}
for dir in list:
if root.has_key(dir):
root[dir]=root[dir]+1
else:
root[dir]=1
et root contient la somme des fichiers et dossiers, et ça se processe
ensuite très facilement.
Mais pour le second niveau (et les suivants), j'ai du mal à trouver
une bonne méthode.
Avez vous une idée?
Bonjour,
je cherche à trouver le meilleure moyen de stocker des données arborescentes.
Un cas typique d'utilisation est un filesystem (unix pour l'exemple).
Il y a une racine / contenant des dossiers et des fichiers.
Certains dossiers, /usr /home /lib, peuvent contenir des dossiers et des
fichiers, etc...
Le but est d'obtenir la somme totale de fichier et dossiers a chaque
étage et de faire plusieurs manipulations ensuite sur ces données
(entre autre pouvoir faire un graphe avec graphviz simplement)
J'ai d'imposé en entrée un fichier plat contenant une arborescence:
/
/home
/home/kevin
/home/kevin/prog.py
/usr
/usr/bin
etc...
Pour le premier niveau, pas de problèmes, je peux faire un dictionnaire:
root = {}
for dir in list:
if root.has_key(dir):
root[dir]=root[dir]+1
else:
root[dir]=1
et root contient la somme des fichiers et dossiers, et ça se processe
ensuite très facilement.
Mais pour le second niveau (et les suivants), j'ai du mal à trouver
une bonne méthode.
Avez vous une idée?
Bonjour,
je cherche à trouver le meilleure moyen de stocker des données
arborescentes.
Un cas typique d'utilisation est un filesystem (unix pour l'exemple).
Il y a une racine / contenant des dossiers et des fichiers.
Certains dossiers, /usr /home /lib, peuvent contenir des dossiers et des
fichiers, etc...
Le but est d'obtenir la somme totale de fichier et dossiers a chaque
étage et de faire plusieurs manipulations ensuite sur ces données
(entre autre pouvoir faire un graphe avec graphviz simplement)
J'ai d'imposé en entrée un fichier plat contenant une arborescence:
/
/home
/home/kevin
/home/kevin/prog.py
/usr
/usr/bin
etc...
Pour le premier niveau, pas de problèmes, je peux faire un dictionnaire:
root = {}
for dir in list:
if root.has_key(dir):
root[dir]=root[dir]+1
else:
root[dir]=1
et root contient la somme des fichiers et dossiers, et ça se processe
ensuite très facilement.
Mais pour le second niveau (et les suivants), j'ai du mal à trouver une
bonne méthode.
Avez vous une idée?
Bonjour,
je cherche à trouver le meilleure moyen de stocker des données
arborescentes.
Un cas typique d'utilisation est un filesystem (unix pour l'exemple).
Il y a une racine / contenant des dossiers et des fichiers.
Certains dossiers, /usr /home /lib, peuvent contenir des dossiers et des
fichiers, etc...
Le but est d'obtenir la somme totale de fichier et dossiers a chaque
étage et de faire plusieurs manipulations ensuite sur ces données
(entre autre pouvoir faire un graphe avec graphviz simplement)
J'ai d'imposé en entrée un fichier plat contenant une arborescence:
/
/home
/home/kevin
/home/kevin/prog.py
/usr
/usr/bin
etc...
Pour le premier niveau, pas de problèmes, je peux faire un dictionnaire:
root = {}
for dir in list:
if root.has_key(dir):
root[dir]=root[dir]+1
else:
root[dir]=1
et root contient la somme des fichiers et dossiers, et ça se processe
ensuite très facilement.
Mais pour le second niveau (et les suivants), j'ai du mal à trouver une
bonne méthode.
Avez vous une idée?
Bonjour,
je cherche à trouver le meilleure moyen de stocker des données
arborescentes.
Un cas typique d'utilisation est un filesystem (unix pour l'exemple).
Il y a une racine / contenant des dossiers et des fichiers.
Certains dossiers, /usr /home /lib, peuvent contenir des dossiers et des
fichiers, etc...
Le but est d'obtenir la somme totale de fichier et dossiers a chaque
étage et de faire plusieurs manipulations ensuite sur ces données
(entre autre pouvoir faire un graphe avec graphviz simplement)
J'ai d'imposé en entrée un fichier plat contenant une arborescence:
/
/home
/home/kevin
/home/kevin/prog.py
/usr
/usr/bin
etc...
Pour le premier niveau, pas de problèmes, je peux faire un dictionnaire:
root = {}
for dir in list:
if root.has_key(dir):
root[dir]=root[dir]+1
else:
root[dir]=1
et root contient la somme des fichiers et dossiers, et ça se processe
ensuite très facilement.
Mais pour le second niveau (et les suivants), j'ai du mal à trouver une
bonne méthode.
Avez vous une idée?
(remplacer dans le texte et le code "zorglub" par "files", "dirs" ou
"files + dirs")
(remplacer dans le texte et le code "zorglub" par "files", "dirs" ou
"files + dirs")
(remplacer dans le texte et le code "zorglub" par "files", "dirs" ou
"files + dirs")
je cherche à trouver le meilleure moyen de stocker des données
arborescentes.
J'ai d'imposé en entrée un fichier plat contenant une arborescence:
/
/home
/home/kevin
/home/kevin/prog.py
/usr
/usr/bin
etc...
Pour le premier niveau, pas de problèmes, je peux faire un dictionnaire:
root = {}
for dir in list:
if root.has_key(dir):
root[dir]=root[dir]+1
else:
root[dir]=1
et root contient la somme des fichiers et dossiers, et ça se processe
ensuite très facilement.
Mais pour le second niveau (et les suivants), j'ai du mal à trouver une
bonne méthode.
Avez vous une idée?
Je ne suis pas certain de bien comprendre votre demande. S'il s'agit du
système de fichiers, il me semble que os.walk() conviendrait:
je cherche à trouver le meilleure moyen de stocker des données
arborescentes.
J'ai d'imposé en entrée un fichier plat contenant une arborescence:
/
/home
/home/kevin
/home/kevin/prog.py
/usr
/usr/bin
etc...
Pour le premier niveau, pas de problèmes, je peux faire un dictionnaire:
root = {}
for dir in list:
if root.has_key(dir):
root[dir]=root[dir]+1
else:
root[dir]=1
et root contient la somme des fichiers et dossiers, et ça se processe
ensuite très facilement.
Mais pour le second niveau (et les suivants), j'ai du mal à trouver une
bonne méthode.
Avez vous une idée?
Je ne suis pas certain de bien comprendre votre demande. S'il s'agit du
système de fichiers, il me semble que os.walk() conviendrait:
je cherche à trouver le meilleure moyen de stocker des données
arborescentes.
J'ai d'imposé en entrée un fichier plat contenant une arborescence:
/
/home
/home/kevin
/home/kevin/prog.py
/usr
/usr/bin
etc...
Pour le premier niveau, pas de problèmes, je peux faire un dictionnaire:
root = {}
for dir in list:
if root.has_key(dir):
root[dir]=root[dir]+1
else:
root[dir]=1
et root contient la somme des fichiers et dossiers, et ça se processe
ensuite très facilement.
Mais pour le second niveau (et les suivants), j'ai du mal à trouver une
bonne méthode.
Avez vous une idée?
Je ne suis pas certain de bien comprendre votre demande. S'il s'agit du
système de fichiers, il me semble que os.walk() conviendrait:
.animaux
.animaux.plume
.animaux.plume.oiseau
.animaux.plume.oiseau.pélican
.animaux.carapace
.animaux.carapace.tortue
.animaux
.animaux.plume
.animaux.plume.oiseau
.animaux.plume.oiseau.pélican
.animaux.carapace
.animaux.carapace.tortue
.animaux
.animaux.plume
.animaux.plume.oiseau
.animaux.plume.oiseau.pélican
.animaux.carapace
.animaux.carapace.tortue
Kevin Denis, 2013-09-19 10:43+0200:
> .animaux
> .animaux.plume
> .animaux.plume.oiseau
> .animaux.plume.oiseau.pélican
> .animaux.carapace
> .animaux.carapace.tortue
Allons-y pour un arbre sans sémantique particulière.
class Node:
def __init__(self, children=None):
if children:
self.children = children
else
self.children = {}
root = Node()
for line in sys.stdin:
elements = line.rstrip().split('.')
current = root
for element in elements:
# Create elements that are not already in the root tree
if not element in current.children:
current.children[element] = Node()
# Update current pointer to the current node
current = current.children[element]
Après, tu fais toutes les stats que tu veux avec l'arbre root,
que tu vas probablement avoir besoin de définir des fonctions
avec accumulateur. D'ailleurs, un avantage de Python est qu'il est
inutile de définir des fonctions auxiliaires avec accumulateur puis
fonctions principales appelant ces auxiliaires avec un accumulateur
vide, puisqu'on peut tout simplement définir une fonction avec un
accumulateur optionnel, vide par défaut.
--
. o .
. . o Tanguy
o o o
Kevin Denis, 2013-09-19 10:43+0200:
> .animaux
> .animaux.plume
> .animaux.plume.oiseau
> .animaux.plume.oiseau.pélican
> .animaux.carapace
> .animaux.carapace.tortue
Allons-y pour un arbre sans sémantique particulière.
class Node:
def __init__(self, children=None):
if children:
self.children = children
else
self.children = {}
root = Node()
for line in sys.stdin:
elements = line.rstrip().split('.')
current = root
for element in elements:
# Create elements that are not already in the root tree
if not element in current.children:
current.children[element] = Node()
# Update current pointer to the current node
current = current.children[element]
Après, tu fais toutes les stats que tu veux avec l'arbre root,
que tu vas probablement avoir besoin de définir des fonctions
avec accumulateur. D'ailleurs, un avantage de Python est qu'il est
inutile de définir des fonctions auxiliaires avec accumulateur puis
fonctions principales appelant ces auxiliaires avec un accumulateur
vide, puisqu'on peut tout simplement définir une fonction avec un
accumulateur optionnel, vide par défaut.
--
. o .
. . o Tanguy
o o o
Kevin Denis, 2013-09-19 10:43+0200:
> .animaux
> .animaux.plume
> .animaux.plume.oiseau
> .animaux.plume.oiseau.pélican
> .animaux.carapace
> .animaux.carapace.tortue
Allons-y pour un arbre sans sémantique particulière.
class Node:
def __init__(self, children=None):
if children:
self.children = children
else
self.children = {}
root = Node()
for line in sys.stdin:
elements = line.rstrip().split('.')
current = root
for element in elements:
# Create elements that are not already in the root tree
if not element in current.children:
current.children[element] = Node()
# Update current pointer to the current node
current = current.children[element]
Après, tu fais toutes les stats que tu veux avec l'arbre root,
que tu vas probablement avoir besoin de définir des fonctions
avec accumulateur. D'ailleurs, un avantage de Python est qu'il est
inutile de définir des fonctions auxiliaires avec accumulateur puis
fonctions principales appelant ces auxiliaires avec un accumulateur
vide, puisqu'on peut tout simplement définir une fonction avec un
accumulateur optionnel, vide par défaut.
--
. o .
. . o Tanguy
o o o