Ошибка Python при запуске скрипта - «IndentationError: unindent не соответствует внешнему отступу» - PullRequest
0 голосов
/ 14 июля 2009

Я получаю сообщение об ошибке при попытке запустить свой скрипт

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

Фрагмент кода, который выдает ошибку:

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 ]

6 голосов
/ 14 июля 2009

Поставьте пробел перед sys.exit(1) или удалите пробел перед print "[-] Error: Check your phpvuln.txt path and permissions" и print "[-] Update Failed\n".

3 голосов
/ 14 июля 2009

Как уже упоминали другие, вам нужно убедиться, что каждый блок кода имеет одинаковые отступы.

Что они не упомянули, так это то, что широко распространенное соглашение всегда должно использовать ровно 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)
1 голос
/ 05 октября 2010

Хороший способ поддерживать стандарт для ваших отступов - использовать клавишу табуляции вместо пробела.

0 голосов
/ 14 июля 2009

Ошибка отступа возникает, когда вы сделали неверный отступ. Что хорошо видно по тому, что у вас разные отступы в строке, начинающейся с "sys".

0 голосов
/ 14 июля 2009

У вас есть пустой блок try с ничем под ним. Это вызывает ошибку.

Кстати, ваш sys.exit(1) также имеет отступ. В Python важен отступ, потому что именно так интерпретатор Python определяет блоки кода. Таким образом, для правильной работы кода необходимо сделать отступ в коде.

...