Je voudrais extraire la clé et la valeur d'un fichier texte existant. Saisissez une variable distincte et une valeur dans une variable distincte.
Le fichier texte (sample.txt) contient le contenu ci-dessous,
If we iterate through the file, i am expecting the output as below, Key 0 = one Key 1 = three Key 2 = five Key 3 = seven key 4 = sample Value 0 = two Value 1 = four Value 2 = six Value 3 = eight Value 4 = ten
Je suis capable de lire le contenu à partir du fichier texte, mais je ne suis pas en mesure de poursuivre l'extraction de la clé et de la valeur.
with open ("sampletxt.txt", "r") as hfile: sp = hfile.read() print (sp) x=0 for line in sp: sp.split(":")[x].strip() x+=1
Ce qui précède extrait uniquement la valeur et fournit également une exception d'index hors plage au fin.
one:two three:four five:six seven:eight nine:ten sample:demo
4 Réponses :
Pourquoi n'essayez-vous pas:
with open ("sampletxt.txt", "r") as hfile: sp = hfile.read() print (sp) dictionary = {} for x, line in enumerate(sp): line_list = sp.split(":") dictionary[line_list[0]]=line_list[1]
Cela devrait fonctionner:
with open ("sampletxt.txt", "r") as hfile: sp = hfile.read() print (sp) lines = sp.split("\n") for line in lines: # print("line:[{0}]".format(line)) parts = line.split(":") print("key:[{0}], value:[{1}]".format(parts[0], parts[1]))
Windsting, ça marche. Cependant, j'obtiens l'exception ci-dessous le long des résultats, ligne 21, dans
Cette erreur signifie que la longueur des parties
est inférieure à 2
, donc la ligne
ne contient très probablement pas de caractère : code >, décommentez cette impression pour la vérifier.
Sûr va vérifier .. Merci pour votre aide :)
Cela peut fonctionner:
Key 0 = one Key 1 = three Key 2 = five Key 3 = seven Key 4 = nine Key 5 = sample Value 0 = two Value 1 = four Value 2 = six Value 3 = eight Value 4 = ten Value 5 = demo
Le résultat est:
sp = open ("sampletxt.txt", "r") x=0 key=[] value=[] try: while True: text_line = sp.readline() if text_line: text_line = ''.join(text_line) text_line = text_line.split() text_line = ''.join(text_line).split(':') key.append(text_line[0]) value.append(text_line[1]) x += 1 else: for i in range(x): print("Key {} = {}".format(i,key[i])) print("") for i in range(x): print("Value {} = {}".format(i,value[i])) break finally: sp.close()
qui est similaire à votre demande
p >
Parfait et le code fonctionne correctement. Merci SiyuLiu :)
C'est mon plaisir.
Salut, je suis confronté à un problème lorsque la valeur a un espace blanc entre deux chaînes, le blanc est ignoré dans la logique du code que vous avez donné. Pouvez-vous s'il vous plaît conseiller? Exemple, si la valeur est hello world, alors elle est considérée comme helloworld. Mais j'ai besoin de la valeur réelle, y compris les espaces blancs.