-4

スクリプトを実行しようとするとエラーが発生します

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" 
4

5 に答える 5

6

と の前にスペースを入れるsys.exit(1)か、スペースを削除してください。print "[-] Error: Check your phpvuln.txt path and permissions"print "[-] Update Failed\n"

于 2009-07-14T11:35:58.453 に答える
3

他の人が述べたように、各コード ブロックのインデントがまったく同じであることを確認する必要があります。

彼らが言及していないのは、広く採用されている規則は、インデントごとに常に正確に 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)
于 2009-07-14T11:44:45.770 に答える
1

インデントの標準を維持する良い方法は、スペースバーの代わりにタブ キーを使用することです。

于 2010-10-05T19:28:38.667 に答える
0

インデントエラーは、インデントを誤った場所で発生します。これは、「sys」で始まる行に異なるインデントがあるという事実によってはっきりと見えます。

于 2009-07-14T11:44:00.950 に答える
0

下に何もない空の try ブロックがあります。これがエラーの原因です。

ところで、あなたsys.exit(1)もオフインデントです。Python では、インデントが重要です。これは、Python インタープリターがコード ブロックを決定する方法だからです。したがって、コードを実行するには、コードを適切にインデントする必要があります。

于 2009-07-14T11:35:06.647 に答える