运行脚本时出现Python错误 - “IndentationError:unindent与任何外部缩进都不匹配”

时间:2009-07-14 11:33:14

标签: python syntax indentation

我在尝试运行脚本时遇到错误

Error:"IndentationError: unindent does not match any outer indentation"

抛出错误的代码snipet:

def update():
    try:
        lines = open("vbvuln.txt", "r").readlines()
    except(IOError): 
         print "[-] Error: Check your phpvuln.txt path and permissions"
         print "[-] Update Failed\n" 
        sys.exit(1)
    try:

这是出现错误的实际行:

print "[-] Update Failed\n" 

5 个答案:

答案 0 :(得分:6)

sys.exit(1)之前加一个空格,或在print "[-] Error: Check your phpvuln.txt path and permissions"print "[-] Update Failed\n"之前删除空格。

答案 1 :(得分:3)

正如其他人所提到的,你需要确保每个代码块都有完全相同的缩进。

他们没有提到的是widely adopted convention每个缩进总是使用4个空格。在您的代码中,print语句使用5个空格缩进(很可能是偶然的。)所以不要向sys.exit(1)添加另一个空格;从print语句中删除空格。

修订代码:

def update():
    try:
        lines = open("vbvuln.txt", "r").readlines()
    except (IOError): 
        print "[-] Error: Check your phpvuln.txt path and permissions"
        print "[-] Update Failed\n" 
        sys.exit(1)

答案 2 :(得分:1)

维护缩进标准的一个好方法是使用tab键而不是空格键。

答案 3 :(得分:0)

你有一个空的试块,下面没有任何东西。这导致错误。

顺便说一下,你的sys.exit(1)也是缩进的。在python中,缩进很重要,因为这是Python解释器确定代码块的方式。因此,您必须正确缩进代码才能使代码运行。

答案 4 :(得分:0)

缩进错误发生在缩进不正确的地方。在“sys”开头的行中有不同的缩进,这一点清楚可见。