J'ai un fichier comme divisé en sections comme ça:remplacer les noms des listes de fichiers
[main]
a
b
< sectionA
c
[sectionA]
x
< sectionB
y
z
[sectionB]
q
w
e
Je veux remplacer le « < SectionA » avec le contenu de SectionA et ainsi de suite. Le résultat final devrait être une liste avec seulement les éléments dans le bon ordre, comme ceci: ['a', 'b', 'x', 'q', 'w', 'e', 'y', ' z ',' c ']
A fait le code ci-dessous qui remplit le fichier dans un dictionnaire avec des listes, mais l'ordre n'est pas celui que j'ai utilisé dans l'insertion (donc je ne peux pas être sûr d'où je commence).
Je ne savent pas la meilleure façon de remplacer les choses « < SectionA » avec le contenu de la liste réelle ...
import re
filename = input('Insert filename: ')
f = open(filename)
lines = f.readlines()
elements = {}
name = ''
for i in lines:
if i[-1] == '\n':
i = i[:-1]
if not i:
continue
sec = re.findall(r'\[(\w+)\]', i)
if sec != []:
name = sec[0]
elements[name] = []
else:
elements[name] += [i]
print(elements)
et le résultat est: { « principale »: [ 'a', 'b', '< sectionA', 'c'], 'sectionB': ['q', 'w', 'e'], 'sectionA': ['x', '< section B', 'y', 'z']}
J'ai aimé votre fonction de jointure. Je vais l'utiliser avec mon code (avec quelques changements) pour charger le fichier parce que je n'ai pas compris le vôtre ... –