缩进错误:意外错误
我刚开始学习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 个回答
1
首先,虽然这不是硬性规定,但通常情况下,缩进时使用四个空格比较常见,而不是两个空格(当然,如果你是在修改一些已经用两个空格缩进的代码,那就另当别论了)
接下来,你修改后的代码(在第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())
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())
3
在这行代码前面有多余的缩进。
for line in iter(InFile) :
把这一行和接下来的八行的缩进减少一下,就可以了。