2011-07-01 124 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,和一個複選框「通過更換空間「檢查它,你將避免混合標籤和空格。