invalid syntax - python
Solution 1
The line before the if statement
parser.add_option("-f", "--file", type="string", dest="filename", help="file name"
does not have a closing ).
Python interpreter usually complains about such syntax errors in next line.So, if you get a syntax error at any line, it is advisable to check the preceding line as well
Solution 2
This is equivalent to what you're trying to do, and may be slightly more readable
if options.filename is None and None in [options.search_and, options.search_not, options.search_start, options.search_then]:
parser.error(usage)
sys.exit()
inoobdotcom
Updated on October 13, 2020Comments
-
inoobdotcom over 3 years
I have a set of arguments and all of their dest is 'search_and', 'search_not', 'search_start', 'search_then', and 'filename'
The code that I have to catch the error is
if ( options.filename is None) and ( (options.search_and is None) or (options.search_not is None) or (options.search_start is None) or (options.search_then is None): parser.error(usage) sys.exit()
It may seem like a silly mistake, can someone tell me what is going on?
EDIT#1: I added the ')' at the end to make sure it closes properly but it still says invalid syntax.
if ( options.filename is None) and ( (options.search_and is None) or (options.search_not is None) or (options.search_start is None) or (options.search_then is None)):
EDIT#2: Here is what I have so far.
import optparse from OptionParser usage = "useage: %prog [options]" parser = OptionParser(usage) parser.add_option("-a", "--all", type="string", dest="search_and", help="find ALL lines in the file for the word1 AND word2") parser.add_option("-b", "--all", type="string", dest="search_not", help="search and find the lines that contain words1 not word2") parser.add_option("-c", "--all", type="string", dest="search_start", help="search and find a line that starts with word1 or word2") parser.add_option("-d", "--all", type="string", dest="search_then", help="search and find a line that has word1 followed by word2") parser.add_option("-f", "--file", type="string", dest="filename", help="file name" if ( options.filename is None) and ( (options.search_and is None) or (options.search_not is None) or (options.search_start is None) or (options.search_then is None)):
After the code is run by: python script.py -a hi bye
I get invalid syntax with the if statement.
-
Ignacio Vazquez-Abrams over 12 yearsThat's because you did the same sort of error (unbalanced brackets) elsewhere.
-
inoobdotcom over 12 yearsVazques-Abrams, I'll add what i have so far for the code. at edit#2 of the original post, give me a minute.
-
inoobdotcom over 12 yearsI just don't see it. I'm constantly rewriting it but its just not working lol.
-
utapyngo over 12 years@ino: now you missed a
)
beforeif
-
Furbeenator over 12 yearsStill missing a ) at the end; should be: `if options.filename is None and ((options.search_and is None) or (options.search_not is None) or (options.search_start is None) or (options.search_then is None)):
-
Ignacio Vazquez-Abrams over 12 years@Furbeenator: Yes, that's what I wrote.
-
Furbeenator over 12 yearsWell then why "@Furbeenator: Yes, that's what I wrote.?"
-
Ignacio Vazquez-Abrams over 12 yearsWhen you see it, you'll sh*t bricks.