J'ai plusieurs fichiers * .txt avec un ID et une valeur, et je souhaite créer un dictionnaire unique. Cependant, certains ID sont répétés dans certains fichiers, et pour ces ID, je veux CONCATENATED les valeurs. Ceci est un exemple de deux fichiers (mais j'ai un tas de fichiers, donc je pense que j'ai besoin de glob.glob) :(Notez que toutes les 'valeurs' d'un certain fichier ont la même longueur, donc je peux ajouter '-' . plusieurs fois le len (valeur) est manquanteCréation d'un mappage dict à partir de plusieurs fichiers texte
fichier 1
ID01
Hi
ID02
my
ID03
ni
File 2
ID02
name
ID04
meet
ID05
your
sortie Desire: (Notez que lorsqu'il n'y a pas ID répétitif, je veux ajouter ' Na 'ou' - ', avec le même len (valeur) à concaténer) Ceci est ma sortie:
ID01
Hi----
ID02
myname
ID03
ni----
ID04
--meet
ID05
--your
Je veux juste stocker la sortie dans un dictionnaire. De plus, je suppose que si j'imprime le fichier quand il est ouvert, je pourrais savoir dans quel ordre les fichiers sont ouverts après l'autre, n'est-ce pas?
C'est ce que j'ai: (Je ne peux pas concaténer mes valeurs jusqu'à présent)
output={}
list = []
for file in glob.glob('*.txt'):
FI = open(file,'r')
for line in FI.readlines():
if (line[0]=='I'): #I am interested in storing only the ones that start with I, for a future analysis. I know this can be done separating key and value with '\t'. Also, I am sure the next lines (values) does not start with 'I'
ID = line.rstrip()
output[ID] = ''
if ID not in list:
list.append(ID)
else:
output[ID] = output[ID] + line.rstrip()
if seqs_name in list:
seqs[seqs_name] += seqs[seqs_name]
print (file)
FI.close()
print ('This is your final list: ')
print (list) #so far, I am getting the right final list, with no repetitive ID
print (output) #PROBLEM: the repetitive ID, is being concatenated twice the 'value' in the last file read.
En outre, comment ajouter le « - » lorsque l'ID ne se répète pas? J'apprécierais grandement votre aide. En résumé: Je ne parviens pas à concaténer des valeurs lorsque la clé est répétée dans un autre fichier. Et si les clés ne sont pas répétées, je veux ajouter '-', afin que je puisse plus tard imprimer le nom du fichier et savoir dans quel fichier certains ID n'ont pas de valeur.
ok, votre nouvelle version fonctionne :). Merci beaucoup! – gusa10
Et si vous voulez ajouter '-' ou 'Na' lorsqu'une valeur n'est pas concaténée? – gusa10
@ gusa10 une question par fil s'il vous plaît;) Vous pouvez envisager de marquer cela accepté si cela a aidé. En ce qui concerne l'ajout de Na, vous devrez obtenir du texte, puis vérifier si le texte commence aussi par l'ID. Cela signifie que le texte actuel est manquant. –