文件比较函数中的缩进错误

时间:2015-02-02 02:25:18

标签: python

我试图比较两个文件中的行并用它做一些事情。但我在缩进时遇到错误,我不确定为什么会有错误。 我会欣赏任何指针。

[root @ localhost~] #python commit.py

文件" commit.py",第85行

done = True
^

IndentationError:意外缩进

有错误的代码:

 75 def compareline():
 76  done = False
 77  for filename in newfilenamelist:
 78   if done:
 79    break
 80   with open(filename) as line:
 81    for list in opendifffilelist:
 82     if not list:
 83      print "List is empty"
 84      done = True
 85     for line in filename:
 86      if list == line :
 87       opendifffilelist.remove(list)
 88       outfile.append(outfile)
 89       break

2 个答案:

答案 0 :(得分:3)

乍一看你的缩进似乎是正确的。这种错误通常是由于在源代码中混合制表符和空格。

来自PEP 8

  

空格是首选的缩进方法。

     

选项卡应仅用于与代码保持一致   已经缩进了标签。

     

Python 3不允许混合使用制表符和空格来缩进。

     

使用标签和空格的混合缩进的Python 2代码应该是   转换为专门使用空格。

     

使用-t调用Python 2命令行解释器时   选项,它会发出有关非法混合标签和代码的警告   空间。使用-tt时,这些警告会出错。这些选项是   强烈推荐!

上面的部分是关于缩进的。

答案 1 :(得分:0)

尝试此格式化。您的错误可能是由于混合标签和空格造成的。

def compareline():
    done = False
    for filename in newfilenamelist:
        if done:
            break
        with open(filename) as line:
            for list in opendifffilelist:
                if not list:
                    print "List is empty"
                    done = True
            for line in filename:
                if list == line :
                    opendifffilelist.remove(list)
                    outfile.append(outfile)
                    break