I want to join column of two different data file but i want that the entries will match (example i mentioned in my first mail, the position of ALA eill match) if its not matching then it will get printed as such.
> amr...@iisermohali.ac.in wrote: > >> I tried to join these two files together using command....... >> >> from itertools import izip >> from os.path import exists >> >> def parafiles(*files): >> vec = (open(f) for f in files if exists(f)) >> data = izip(*vec) >> [f.close() for f in vec] >> return data >> >> for data in parafiles('/home/amrita/alachems/chem1.txt', >> '/home/amrita/secstr/secstr.txt'): >> print ' '.join(d.strip() for d in data) > > parafiles has a bug: vec is a generator and hence cannot be run twice. > Therefore the odd [f.close()...] list comprehension (don't use a list comp > if you don't care about the result!) has no effect. > > If you change vec into a list you will be hit by another problem -- the > for > loop trying to operate on closed files. While the correct approach > probably > involves a contextlib.contextmanager I recommend that you concentrate on > your real problem and keep parafiles() simple: > > def parafiles(*files): > open_files = (open(f) for f in files if exits(f)) > return izip(*open_files) > >> it just joined the column of two files. > > Can you make an effort to express clearly what you want, preferrably with > a > simple and unambiguous example? > > Please keep the line widths below the threshold of 78 characters to avoid > messing it up on its way to the reader. > > Peter > > -- > http://mail.python.org/mailman/listinfo/python-list > Amrita Kumari Research Fellow IISER Mohali Chandigarh INDIA -- http://mail.python.org/mailman/listinfo/python-list