缩进错误:意外错误

时间:2011-07-01 11:09:10

标签: python

我是Python新手,并在notepad ++中编写了代码。我使用空格而不是制表符,我想我使用了正确的缩进格式。但我还是得到了错误。我不明白我做错了什么。这是代码,

#!/usr/bin/python

import sys
import shutil
import sys

def Usage() :
  print "LabelFile TranscriptionFile PhonemeFile"

def main(argv = None) :
  if len(sys.argv) !=3 :
    Usage()
  else :
    LabelFile = sys.argv[1]
    TranscriptionFile = sys.argv[2]
    PhonemeFile = sys.argv[3]
    if (os.path.exists(LabelFile)) :
      InFile = open(LabelFile, "r")
      TFile = open(TranscriptionFile, "w")
      PFile = open(PhonemeFile, "w")
        for line in iter(InFile) :
          list = line.split()
          Tlist = list.pop(3) 
          Plist = list[2]
          TFile.write(" ".join(list) + "\n") 
          PFile.write("".join(list) + " ")  
        InFile.close()
        TFile.close()
        PFile.close()

if __name__ == "__main__" :
  sys.exit(main()) 

请帮忙。非常感谢你。

4 个答案:

答案 0 :(得分:3)

前面有一个缩进太多
for line in iter(InFile) :

减少该行和以下八行的缩进,您应该全部设置。

答案 1 :(得分:1)

第21行:

for line in iter(InFile) :

开始将其与上面的行对齐

回溯也会告诉您错误行号,因此如果您阅读全部

,则很容易修复

此外,缩小4个空格而不是2个空格是一个好习惯:

#!/usr/bin/python

import sys
import shutil
import sys

def Usage() :
    print "LabelFile TranscriptionFile PhonemeFile"

def main(argv = None) :
    if len(sys.argv) !=3 :
        Usage()
    else :
        LabelFile = sys.argv[1]
        TranscriptionFile = sys.argv[2]
        PhonemeFile = sys.argv[3]
        if (os.path.exists(LabelFile)) :
            InFile = open(LabelFile, "r")
            TFile = open(TranscriptionFile, "w")
            PFile = open(PhonemeFile, "w")
            for line in iter(InFile) :
                list = line.split()
                Tlist = list.pop(3) 
                Plist = list[2]
                TFile.write(" ".join(list) + "\n") 
                PFile.write("".join(list) + " ")  
            InFile.close()
            TFile.close()
            PFile.close()

if __name__ == "__main__" :
  sys.exit(main()) 

答案 2 :(得分:1)

首先关闭。虽然这不是必需的,但是使用四个空格进行缩进是常见的,而不是两个(当然,除非您正在扩展一些已经有2个空格缩进的代码)

然后,修改后的代码(第21行的for循环上出现缩进错误):

#!/usr/bin/python

import sys
import shutil
import sys

def Usage() :
  print "LabelFile TranscriptionFile PhonemeFile"

def main(argv = None) :
  if len(sys.argv) !=3 :
    Usage()
  else :
    LabelFile = sys.argv[1]
    TranscriptionFile = sys.argv[2]
    PhonemeFile = sys.argv[3]
    if (os.path.exists(LabelFile)) :
      InFile = open(LabelFile, "r")
      TFile = open(TranscriptionFile, "w")
      PFile = open(PhonemeFile, "w")
      for line in iter(InFile) :
        list = line.split()
        Tlist = list.pop(3)
        Plist = list[2]
        TFile.write(" ".join(list) + "\n")
        PFile.write("".join(list) + " ")
      InFile.close()
      TFile.close()
      PFile.close()

if __name__ == "__main__" :
  sys.exit(main())

答案 3 :(得分:1)

使用notepad ++,在“设置/首选项”菜单的“编辑组件”面板中,有一个选项标签大小,使用4,并选中一个复选框“替换为空格”检查它,您将避免混合标签和空格。