Ich habe ein Programm, das eine Liste in eine Datei schreibt. Die Liste ist eine Liste von durch Pipe getrennten Zeilen, und die Zeilen sollten wie folgt in die Datei geschrieben werden:
123|GSV|Weather_Mean|hello|joe|43.45
122|GEV|temp_Mean|hello|joe|23.45
124|GSI|Weather_Mean|hello|Mike|47.45
ABER es schrieb ihnen Zeile dieses ahhhh:
123|GSV|Weather_Mean|hello|joe|43.45122|GEV|temp_Mean|hello|joe|23.45124|GSI|Weather_Mean|hello|Mike|47.45
Dieses Programm hat alle Zeilen wie eine Zeile ohne Zeilenumbrüche geschrieben. Das tut mir sehr weh und ich muss herausfinden, wie ich das umkehren kann, aber wo ist mein Programm hier falsch? Ich dachte, Schreibzeilen sollten Zeilen in die Datei schreiben, anstatt alles in eine Zeile zu schreiben.
fr = open(sys.argv[1], 'r') # source file
fw = open(sys.argv[2]+"/masked_"+sys.argv[1], 'w') # Target Directory Location
for line in fr:
line = line.strip()
if line == "":
continue
columns = line.strip().split('|')
if columns[0].find("@") > 1:
looking_for = columns[0] # this is what we need to search
else:
looking_for = "Dummy@dummy.com"
if looking_for in d:
# by default, iterating over a dictionary will return keys
new_line = d[looking_for]+'|'+'|'.join(columns[1:])
line_list.append(new_line)
else:
new_idx = str(len(d)+1)
d[looking_for] = new_idx
kv = open(sys.argv[3], 'a')
kv.write(looking_for+" "+new_idx+'\n')
kv.close()
new_line = d[looking_for]+'|'+'|'.join(columns[1:])
line_list.append(new_line)
fw.writelines(line_list)
"\n"nirgendwo in Ihrem Bereich anhängenline_list.