Ich möchte eine Datei mit 3 Hauptspalten machen, aber meine aktuelle Datei hat unterschiedliche Anzahl von Spalten pro Zeile. ein Beispiel für meine Datei ist wie folgt:Erstellen von Nachrichten Zeile basierend auf der Anzahl der Spalten in Python
BPIFB3,chr20;ENST00000375494.3
PXDN,chr2,ENST00000252804.4;ENST00000483018.1
RP11,chr2,ENST00000607956.1
RNF19B,chr1,ENST00000373456.7;ENST00000356990.5;ENST00000235150.4
und hier ist das, was ich machen möchte:
BPIFB3 chr20 ENST00000375494.3
PXDN chr2 ENST00000252804.4
PXDN chr2 ENST00000483018.1
RP11 chr2 ENST00000607956.1
RNF19B chr1 ENST00000373456.7
RNF19B chr1 ENST00000356990.5
RNF19B chr1 ENST00000235150.4
in der Tat, wenn in der dritten Reihe haben wir mehr als 3 Spalten haben, pro jede zusätzliche Spalte, ich möchte eine neue Zeile erstellen, in der die ersten beiden Spalten gleich sind, aber die dritte Spalte ist anders (das ist die zusätzliche Spalte in der ursprünglichen Datei).
Ich habe versucht, den folgenden Code in Python aber nicht bekommen, was ich suche:
from collections import defaultdict
with open('data.tbl') as f, open('out.tbl', 'w') as out:
for line in f.split('\t'):
if len(line) > 2:
d[line[0]] = line[3]
out.write(d.items)
Die Leute haben Ihnen die allgemeine Form einer Antwort gegeben, aber Sie haben die Beispieleingabe (insbesondere die Trennzeichen) mehrmals in Ihren Redits geändert. Was Sie aufteilen oder als Trennzeichen verwenden, sollte dem Dateiformat entsprechen. '\ t' bedeutet tab. Das Importding in allen Antworten ist das Slicing der Liste. – doctorlove
Bitte machen Sie ** ** keine signifikanten Änderungen an Ihrer Frage, nachdem sie gültige Antworten erhalten hat. –