dictionary

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
silky vanilla
User
Beiträge: 51
Registriert: Donnerstag 3. Mai 2007, 09:46

Ich habe eine Datei(mit jeder Menge Daten) die aus Spalten besteht, die durch Tabulatoren getrennt sind.
Insgesamt besitz sie 8 Spalten. Ich moechta allerdings nur mit Spalte 2 und 3 weiterarbeiten und diese in ein Dictionary ueberfuehren, dabei soll Spalte 2 der value sein und Spalte 3 der key.

Wie kann ich das am besten umsetzen?

Hier schon mal ein kleiner Anfang von mir, nun haenge ich aber fest.

Code: Alles auswählen

 inp = open ("RefSeq2Entrez.HS.txt","r")      # Datei zum Lesen oeffnen
outp = open ("RefSeq2Entrez.HS.neu.txt","w") # neue Datei zum Schreiben oeffnen (fuer Kopie)[/img]
for line in inp.readlines():                 # erzeugt Liste von Zeilen
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Ein Tipp: line.split("\t")

Ein anderer Tipp: http://docs.python.org/lib/module-csv.html
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Code: Alles auswählen

line.split("\t")
sollte dir weiterhelfen.

Ein Dictionary erzeugst du mit:

Code: Alles auswählen

d = dict()
Einfuegen in ein Dictionary geht über:

Code: Alles auswählen

d[key] = value
Und so kannst du auf den Index einer Liste zugreifen:

Code: Alles auswählen

list = [0,1,2]
list[0] #=>0
list[1] #=>1
Das sollte alles sein, was du benötigst.
silky vanilla
User
Beiträge: 51
Registriert: Donnerstag 3. Mai 2007, 09:46

Code: Alles auswählen

line.split()

ok, aber wie lege ich dann feste wo ich genau aufteile?
BlackJack

Die Methode nimmt ein Argument entgegen. Wurde von Rebecca und EyDu aber schon gezeigt.
silky vanilla
User
Beiträge: 51
Registriert: Donnerstag 3. Mai 2007, 09:46

ich hab jetz daran weiter gearbeitet. da kommt jetzt eine Fehlermeldung: Token Error: EOF in multi-line statement??

Code: Alles auswählen

inp = open ("RefSeq2Entrez.HS.txt","r")      # Datei zum Lesen oeffnen
outp = open ("RefSeq2Entrez.HS.neu.txt","w") # neue Datei zum Schreiben oeffnen(fuer Kopie)

header = inp.readline().strip('\n\r')
header = [col.upper() for col in header.split('\t')]
out.write(header[1]+'\t'+header[2]
          
for line in inp.readlines():                 # erzeugt Liste von Zeilen
   data = line.split ('\t')                  # Datei aufteilen nach Tabulator
   Gene = data [0]                           
   ID = data [1]
   new_data = [Gene,ID]
   out.write(new_data)
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Du hast beim Schreiben der header beim out.write die schließende Klammer vergessen.

edit: Nachdem Dein Code jetzt in Python-Tags steht, wäre das Zeile 6
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
Antworten