Re: IndentationError: expected an indented block but it's there
On Wed, May 29, 2013 at 2:53 AM, Peter Otten __pete...@web.de wrote: Chris Angelico wrote: On Wed, May 29, 2013 at 2:19 AM, Peter Otten __pete...@web.de wrote: Solution: configure your editor to use four spaces for indentation. ITYM eight spaces. I meant: one hit of the Tab key should add spaces up to the next multiple of four. Which implies But the real solution is to not mix tabs and spaces. Stick to one or the other and you're safe. Sure. If you configure your tab *key* to not insert a tab *character*, then you're fine. Or alternatively, if you always use \t for indentation, you can tweak the displayed width of it. (Or, as I do, just let it be eight wide. On today's screens that's not much of a problem.) ChrisA -- http://mail.python.org/mailman/listinfo/python-list
IndentationError: expected an indented block but it's there
Having a problem getting a py script to execute. Got this error: File /scripts/blockIPv4.py, line 19 ip = line.split(';')[0] ^ IndentationError: expected an indented block I'm perplexed because the code that the error refers to *is* indented: with open('/var/www/html/mydomain.com/banlist.txt','r') as inFile: for line in inFile.readlines(): ip = line.split(';')[0] output = os.popen( '/etc/sysconfig/iptables -A INPUT -s ' + ip + ' -j REJECT' ) logFile.write(ip+' - Has been blocked\n') What am I missing here? -- My email address on the header is a non-monitored spam catching account. I can be reached via http://www.wvnh.net/contact.htm -- http://mail.python.org/mailman/listinfo/python-list
Re: IndentationError: expected an indented block but it's there
On 05/28/2013 09:32 AM, JackM wrote: Having a problem getting a py script to execute. Got this error: File /scripts/blockIPv4.py, line 19 ip = line.split(';')[0] ^ IndentationError: expected an indented block I'm perplexed because the code that the error refers to *is* indented: with open('/var/www/html/mydomain.com/banlist.txt','r') as inFile: for line in inFile.readlines(): ip = line.split(';')[0] output = os.popen( '/etc/sysconfig/iptables -A INPUT -s ' + ip + ' -j REJECT' ) logFile.write(ip+' - Has been blocked\n') What am I missing here? Indentation has to be consistent. likely the for line is indented with spaces and the next line with a tab. You can use tabs and spaces, but you have to be consistent with how you use them. IE if level 1 is indented with spaces, then level 2 has to be indented with spaces up to level 1 as well. Hope that makes sense. -- http://mail.python.org/mailman/listinfo/python-list
Re: IndentationError: expected an indented block but it's there
On Tue, 28 May 2013 11:32:06 -0400, JackM wrote: Having a problem getting a py script to execute. Got this error: File /scripts/blockIPv4.py, line 19 ip = line.split(';')[0] ^ IndentationError: expected an indented block I'm perplexed because the code that the error refers to *is* indented: Whenever you get perplexing indentation errors, suspect an inconsistency due to mixed tabs and spaces. Tabs good. Spaces good. Tabs and spaces together, bad. You can run the tabnanny module over your source code: python -m tabnanny file-or-directory to convert indentation to all spaces. -- Steven -- http://mail.python.org/mailman/listinfo/python-list
Re: IndentationError: expected an indented block but it's there
JackM wrote: Having a problem getting a py script to execute. Got this error: File /scripts/blockIPv4.py, line 19 ip = line.split(';')[0] ^ IndentationError: expected an indented block I'm perplexed because the code that the error refers to *is* indented: with open('/var/www/html/mydomain.com/banlist.txt','r') as inFile: for line in inFile.readlines(): ip = line.split(';')[0] output = os.popen( '/etc/sysconfig/iptables -A INPUT -s ' + ip + ' -j REJECT' ) logFile.write(ip+' - Has been blocked\n') What am I missing here? If you are mixing tabs and spaces to indent your code and have your editor configured with a tab width other than eight your code may look correct when it isn't. A simulation in the interactive interpreter: The actual file contents: s = if 1:\n\tif 2:\n\tprint 'hi' What you see: print s.expandtabs(4) if 1: if 2: print 'hi' exec s.expandtabs(4) hi What Python sees: print s.expandtabs(8) if 1: if 2: print 'hi' exec s Traceback (most recent call last): File stdin, line 1, in module File string, line 3 print 'hi' ^ IndentationError: expected an indented block Solution: configure your editor to use four spaces for indentation. -- http://mail.python.org/mailman/listinfo/python-list
Re: IndentationError: expected an indented block but it's there
On Wed, May 29, 2013 at 2:19 AM, Peter Otten __pete...@web.de wrote: Solution: configure your editor to use four spaces for indentation. ITYM eight spaces. But the real solution is to not mix tabs and spaces. Stick to one or the other and you're safe. ChrisA -- http://mail.python.org/mailman/listinfo/python-list
Re: IndentationError: expected an indented block but it's there
Chris Angelico wrote: On Wed, May 29, 2013 at 2:19 AM, Peter Otten __pete...@web.de wrote: Solution: configure your editor to use four spaces for indentation. ITYM eight spaces. I meant: one hit of the Tab key should add spaces up to the next multiple of four. Which implies But the real solution is to not mix tabs and spaces. Stick to one or the other and you're safe. -- http://mail.python.org/mailman/listinfo/python-list