1

可能重复:
IndentationError: unindent 不匹配任何外部缩进级别

我有以下python代码。

import sys

ins = open( sys.argv[1], "r" )
array = []
for line in ins:
    s = line.split()
    array.append( s[0] ) # <-- Error here 
print array

ins.close()

python解释器抱怨

  File "sort.py", line 7
    array.append( s[0] )
                       ^
IndentationError: unindent does not match any outer indentation level

为什么这样?以及如何纠正这个错误?

4

3 回答 3

4

您正在混合制表符和空格(有时会发生:)。使用其中一种。

我看了你的消息来源:

    s = line.split()  # there's a tab at the start of the line
    array.append( s[0] )  # spaces at the start of the line

旁白:作为一个友好的建议,考虑使用with打开您的文件。close()优点是当您完成或遇到异常时,该文件将自动为您关闭(不需要)。

array = []
with open( sys.argv[1], "r" ) as ins:  # "r" really not needed, it's the default.
   for line in ins:
      s = line.split()
      # etc...
于 2012-07-04T11:22:30.293 回答
3

运行你的代码python -tt sort.py

它会告诉你是否混合了制表符和空格。

于 2012-07-04T11:26:40.547 回答
2

使用空格或制表符确保您的缩进是一致的,而不是两者的混合。

于 2012-07-04T11:22:39.233 回答