Ho un programma che scrive una lista in un file. La lista è una lista di linee di tubazioni delimitato e le linee devono essere scritte nel file in questo modo:writelines scrive righe senza ritorno a capo, solo riempie il file ..
123|GSV|Weather_Mean|hello|joe|43.45
122|GEV|temp_Mean|hello|joe|23.45
124|GSI|Weather_Mean|hello|Mike|47.45
MA scritto li fiancheggiano questo ahhhh:
123|GSV|Weather_Mean|hello|joe|43.45122|GEV|temp_Mean|hello|joe|23.45124|GSI|Weather_Mean|hello|Mike|47.45
Questo programma ha scritto tutte le linee in come una linea senza interruzioni di linea .. questo mi fa molto male e io devo figura-out come invertire questo, ma in ogni caso, in cui è il mio programma male qui? Ho pensato che le linee di scrittura dovrebbero scrivere le linee verso il basso il file piuttosto che scrivere tutto a una linea ..
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 = "[email protected]"
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)
Sembra che tu non stia aggiungendo '" \ n "' ovunque nel tuo 'line_list'. –
Puoi dare un'occhiata a [csv] (http://docs.python.org/2/library/csv.html) – esauro
Dove posso aggiungere "\ n"? Lo aggiungo alla lista dell'oggetto ?? – user836087