2011-07-01 125 views
-1

我是Python新手,并在记事本++中编写了代码。我用空格而不是制表符,我想我已经使用了正确的缩进格式。但我仍然得到你的错误。我不明白我做错了什么。这里是代码,缩进错误:意外错误

#!/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

有一个我前面的缩进太多

for line in iter(InFile) : 

减少该行和后面八行的缩进,并且应该全部设置。

+0

它显示了第15行的错误是TranscriptionFile = sys.argv [2] – zingy

+0

@Shivani你是否100%确定你没有使用制表符而不是该行上的空格? – knatten

+0

我正在使用空格,并且我摆脱了缩进错误。谢谢 – zingy

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()) 
1

首先。尽管这不是一个要求,它使用四个空格缩进很平常的,而不是两个(当然,除非你正在扩展已经有2个空格缩进一些代码)

然后,您修改代码(有一个缺口在for环上21行)错误:,

#!/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()) 
1

与记事本++在“设定/偏好”菜单,“编辑组件”面板,有一个选项标签大小,使用图4,和一个复选框“通过更换空间“检查它,你将避免混合标签和空格。