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.