2016-03-31 7 views
-4

1) Ich suche eine Textdatei mit Werten von Doppelpunkten dieser Weise getrennt zu öffnen:Öffnen eine Textdatei und das Hinzufügen zu einem Wörterbuch

Name: Daniel Alter: 12 Geschlecht: männlich ...

Wie öffne ich diese Textdatei in Python und alles zu einem Wörterbuch hinzufügen, so dass es so endet:

dictionary={"Name":"Daniel","Age":"12","Gender","male"...} 

2) ich den Benutzer dann will nach einem Schlüssel suchen zu können, Sagen wir "Name" und dann das Programm ou sagt "Daniel". Wie kann ich das machen?

+2

die Dokumentation ... [Lesen und Schreiben von Dateien] (https://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files) und [Wörterbücher: ] (https://docs.python.org/2/tutorial/datastructures.html#dictionari es) – ILostMySpoon

Antwort

-1

Und was ist der Separator zwischen den Zeilen? wenn sie Zeilenumbruch ist, können Sie ein file.readlines tun:

yourFile = open("file.txt", "r") 
lines = yourFile.readlines() 
output = {} 
for line in lines: 
    #BE CAREFUL! [-2] if window line break (\r\n) 
    #You can also do l = line.replace('\r', "").replace("\n", "") 
    #Which is better, because it is cross-platform and cross-format 
    l = line[-1] 
    output[l.split(':')[0]] = l.split(':')[1] 

Erläuterung:

  • yourFile.readlines Datei liest, und senden Sie es wie ["line1\n", "line2\n"]
  • Wir tun eine für, schleife, wir schneiden sie den Zeilenumbruch-Zeichen (s) (\ n \ r \ n oder \ r hängt von OS !! sollte es nur \ n, sondern versuchen, sein ...
  • für jede Linien:
    • Wir sp leuchtet Zeichenfolge durch Spalte: "Name:Daniel".split(":")['Name', 'Daniel']
    • kehrt Wir hängen Sie ihn in das Wörterbuch mit dictionnary['key'] = 'value' Syntax

Es sollte funktionieren, aber Vorsicht: Spaces zwischen Spalte Aufenthalt !! es entfernen aus, müssen Sie string.replace ("Name : Daniel".replace(" ", "") wird kehrt "Name:Daniel ") verwenden

Und der Name für die Rückkehr, sobald Sie Wörterbuch, nichts einfacher:.. dictionnary["Name"] Ausgänge "Daniel"

-1

Ein Vorschlag Lesen

file = open("file.txt","r") 
output_dict={} 
lines=file.readlines() 
file.close() 
line=lines[0].replace(" : "," ") 
words=line.split(' ') 
for i in range(0,len(words)-1,2): 
    output_dict[words[i]]=words[i+1] 
print(output_dict) 
Verwandte Themen