Note that there are some explanatory texts on larger screens.

plurals
  1. POParsing a python file to check it conforms to certain rules
    text
    copied!<p>My mentor Barry is always kicking me for forgetting to put spaces after my commas, equals signs, and for leaving too many lines at the end of a file. I wanted to practice some python and to write a parser to check my files before presenting them to him.</p> <pre><code>#BarryParser v0.1 from re import findall, search def comma_checker(line, lineno): """ Checks commas have a space after them """ split_line = line.split(', ') for string in split_line: found_error = findall('.*,.*', string) if found_error: print "BARRY ISSUE DETECTED: COMMA ERROR LINE: %s: %s" % (lineno, line) def equals_checker(line, lineno): split_line = line.split(' = ') for string in split_line: found_error = findall('.*==?.*', string) if found_error: print "BARRY ISSUE DETECTED: EQUALS ERROR LINE: %s: %s" % (lineno, line) def too_many_blank_lines(lines): """if the last line is a new line and the line before is also a new line, rasises barry issue over too many blank lines """ last_line = lines[len(lines)-1] second_to_last_line = lines[len(lines)-2] if last_line == "\n" and second_to_last_line == "\n": print "BARRY ISSUE DETECTED: TOO MANY BLANK LINES AT END OF TEXT" elif search('\t*\n{1}', last_line)and search('\t*\n{1}', second_to_last_line): print "BARRY ISSUE DETECTED: TOO MANY BLANK LINES AT END OF TEXT" elif search('\t*\n{1}', second_to_last_line) and last_line == "\n": print "BARRY ISSUE DETECTED: TOO MANY BLANK LINES AT END OF TEXT" def main(): file = open("test.txt") line_no = 0 lines = file.readlines(100000) too_many_blank_lines(lines) #CHECK FOR BLANK LINES AT END OF TEXT for line in lines: line_no +=1 if not line == "\n": if not line[:1] == "#": comma_checker(line, line_no) #CHECK COMMAS ARE DONE RIGHT equals_checker(line, line_no) #CHECK EQUALS HAVE SPACES AFTER &amp; BEFORE if __name__ == '__main__': main() </code></pre> <p>It will be parsing python files. The question being, I can't figure out how to get the equals bit to handle == and = the same way. </p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload