Thank you Chris :) ..I will check it... On Sun, Apr 15, 2012 at 3:21 PM, Chris Angelico <ros...@gmail.com> wrote:
> On Sun, Apr 15, 2012 at 7:15 PM, Nibin V M <nibi...@gmail.com> wrote: > > res_own_file = open('/bah') > > res_own_list = res_own_file.readline() > > res_tot_list=[] > > while res_own_list: > > res_own_list=res_own_list.strip() > > res_own_list=res_own_list.replace(' ', '') > > res_name=res_own_list.split(':') > > if res_name[1:2] not in res_tot_list: > > res_tot_list.append(res_name[1:2]) > > res_own_list = res_own_file.readline() > > You can iterate over the file thus: > > for res_own_list in res_own_file: > # body of loop here > > That saves you the trouble of making sure you do the next readline at > the bottom, too. > > (You may also want to consider using the 'with' statement to guarantee > a timely closing of the file. Outside the scope of this mail though.) > > > As you can see above, I am reading each line, cut a particular field and > > sort a unique list from it...I have two questions here > > > > 1. If I have to check the file again from beginning, I can't do it > without > > closing and re-opening file since the file pointer is assigned to the > EOF of > > the opened file right? If so, is there any alliterative method to do it? > I > > don't wish to mess the script with multiple file open-close code! > > You should be able to use res_own_file.seek(0) to do that. I haven't > tested your code, but that ought to work. If it fails, post code that > uses seek and the error message you get, and someone will doubtless > know what's wrong. > > > 2. If I print res_name, it will display like ['one', 'two']. If I > > print res_name[0], it will display one ; but if I print res_name[1] it > > will display error out of index instead of two. From my code, when I use > > res_name[1:2] it's displaying second filed. Why it is behaving like this? > > My guess here is that at the end of the file, you get a blank line. > When you use [1:2] syntax, you get back an empty list if the indices > are out of bounds; but [1] will throw an error. > > if res_name[1:2] not in res_tot_list: > res_tot_list.append(res_name[1:2]) > > I think this list is just to collect unique entries, yes? If so, a set > may be more to your liking. Check out: > http://docs.python.org/py3k/library/stdtypes.html#set > > Hope that's of some value! > > Chris Angelico > -- > http://mail.python.org/mailman/listinfo/python-list > -- Regards.... Nibin. http://TechsWare.in
-- http://mail.python.org/mailman/listinfo/python-list