-----Original Message----- From: Bruno Desthuilliers [mailto:bruno.42.desthuilli...@websiteburo.invalid] Sent: Thursday, March 05, 2009 10:45 PM To: python-list@python.org Subject: Re: Help required to read and print lines based on the type of first character
abhinayaraj.r...@emulex.com a écrit : <ot> Please, don't top-post, and learn to quote & snip (if you don't know what top-posting is, google is your friend). </ot> > Thank you so much for your guidance, Bruno. > > This should help me in a long way. > > Here is the code I have written. > > path = raw_input("\nEnter location eg. c:/buffer/test.txt : \n") > fileIN = open(path) This will break if the file can't be opened (doesn't exist, is protected, whatever). > count = 0 'count' is used locally in the loop, so it shouldn't be set outside it. > for line in fileIN: > data= line > > if '####' in data: > count = 4 > elif '###' in data: > count = 3 > elif '##' in data: > count = 2 > elif '#' in data: > count = 1 > elif data.find('#') == -1: This test is redundant. if the "'#' in data" evals to False, then data.find('#') is garanteed to return -1. > count = 0 > > > if (count == 0 and data!=""): the file iterator yields lines with the newline character included, so there's no way that data == "" (unless you explicitely remove the newline character yourself). Read doc for the strip method of string objects. Also, you don't need the parens. > print data + '\nlooks like a code line...\n' > elif(count== 4): > print data + '\ninvalid line!\n' > elif count>=1: > for i in range(0, count): > print data You didn't address my questions wrt/ specs clarifications. There's a *big* difference between *containing* a substring and *starting with* a substring. Hint: Python strings have a "startswith" method... Also and FWIW, since Python >= 2.5.2 (and possibly >= 2.5.0 - I let you check the docs), Python's strings have a count method too. Your code is not too bad for a beginner - I've done worse when I started -, but it doesn't really matches the specs (which is impossible FWIW given the ambiguities they contain, cf my previous post), and contains a couple of more or less useless or redundant tests which make it looks a bit like "programming by accident", and doesn't really uses Python's string handling features. HTH Bruno, Thanks once again. Yeah, the specification is that it should seek for the first character (sub string) and based on that it should take the decision. So this is "*starting with* a substring." Case only. And as far as your review comments are concerned, I need to have a look at that all those doc's you have mentioned. That should help. -Abhi -- http://mail.python.org/mailman/listinfo/python-list