Reading data from 2 different files and writing to a single file
Wolfgang Maier
wolfgang.maier at biologie.uni-freiburg.de
Mon Jan 28 10:08:38 EST 2013
Hi,
as many others I am not exactly sure what the purpose of your code really
is.
However, if what you´re trying to do here is to take one line from f1, one
line from f2 and then write some combined data to nf, it is not surprising
that you're not getting what you expect (the main reason being that your for
loops are nested, as pointed out already).
In that case, a much cleaner and less error-prone solution would be
iterator-zipping, leaving you with just one for loop that is easy to
understand:
for l,s in zip(f1,f2):
# now l holds the next line from f1, s the corresponding line from
f2
do_yourstuf()
write_output()
if your files are large, then in python 2.x you should use:
import itertools
for l,s in itertools.izip(f1,f2):
do_yourstuff()
write_output()
The reason for this is that before python 3 zip gathered and returned your
results as an in-memory list. itertools.izip and the built-in python 3 zip
return iterators.
Hope that helps,
Wolfgang
From: inshu chauhan [mailto:insideshoes at gmail.com]
Sent: Monday, January 28, 2013 2:32 PM
To: python-list at python.org
Subject: Reading data from 2 different files and writing to a single file
In the code below I am trying to read 2 files f1 and f2 , extract some data
from them and then trying to write them into a single file that is 'nf'.
import cv
f1 = open(r"Z:\modules\Feature_Vectors_300.arff")
f2 = open(r"Z:\modules\Feature_Vectors_300_Pclass.arff")
nf = open(r"Z:\modules\trial.arff", "w")
for l in f1:
sp = l.split(",")
if len(sp)!= 12:
continue
else:
ix = sp[0].strip()
iy = sp[1].strip()
print ix, iy
for s in f2:
st = s.split(",")
if len(st)!= 11:
continue
else:
clas = st[10].strip()
print ix, iy, clas
print >> nf, ix, iy, clas
f1.close()
f2.close()
nf.close()
I think my code is not so correct , as I am not getting desired results and
logically it follows also but I am stuck , cannot find a way around this
simple problem of writing to a same file.. Please suggest some good pythonic
way I can do it..
Thanks in Advance
More information about the Python-list
mailing list