ich grübele hier über ein Problem - wobei ich überzeugt bin, einfach gerade den "Wald vor lauter Bäumen" nicht zu sehen.
Innerhalb eines Projektes erzeuge ich zwei Listen, von denen jede Liste ungefähr 40.000 Einträge hat (also recht umfangreich). Die Listen sind jeweils von der Struktur:
[*]Spalte 1 \tSpalte2 \tSpalte3 ...
[*]chr \t1234 \t5678
In der ersten Spalte stehen also Begriffe (hier mit "chr" dargestellt), in den Spalten 2 und 3 stehen jeweils Zahlen (hier mit 1234 bzw. 5678 dargestellt). Ich möchte nun die beiden Listen miteinander vergleichen auf identische Einträge in der Spalte 2 und diese Einträge dann in eine neue Liste ("common") speichern. Die Einträge aus Liste 1 (wenn man mit Liste 2 vergleicht), die nicht in Liste 2 vorkommen (also Zahlenwerte aus Liste 1 in Spalte 2 finden sich nicht in Liste 2, Spalte 2) sollen in eine zweite Datei ("unique") geschrieben werden.
Hierfür habe ich folgenden Code gebastelt:
Code: Alles auswählen
INFILE1= input("INFILE1: \n")
INFILE2= input("INFILE2: \n")
OUTPUT1= input("OUTPUT COMMON: \n")
OUTPUT2= input("OUTPUT UNIQUE: \n")
with open(INFILE2, "r") as file2:
f2=file2.readlines()
with open (INFILE1, "r") as f1, open (OUTPUT1, "w") as OUTFILE1, open (OUTPUT2, "w") as OUTFILE2:
for line in f1:
if "chr" in line:
linelist= line.rstrip().split('\t')
if any (linelist[1] in x for x in f2):
OUTFILE1.write(line)
else:
OUTFILE2.write(line)
Wäre super, wenn mich jemand von dem "Schlauch schubsen" könnte.