我正在创建一个程序,最近我开始了异常处理。该程序可以正常运行几次,但是现在每次启动时我都会得到一个IndentationError
,这很奇怪,因为它以前运行良好。它很大,所以我只包含该程序的一个片段。让我知道您是否需要整个东西。
使它起作用的唯一方法是删除命令
我在命令之间包括了几行,以便您可以更清晰地识别它们。问题命令在中间。
elif 'python' in cmd:
pythonProgram = cmd.split(' ')[1]
execfile(pythonProgram)
elif 'cd' in cmd:
desired_directory = cmd.split(' ')[1]
if desired_directory == "..":
os.chdir('..')
else:
try:
os.chdir(desired_directory)
print "'%s' Is not a valid directory!" % desired_directory
elif 'ver' in cmd:
print"JDOS_2", currentVersion
我还尝试散列较低的elif
,并在程序中的下一个elif
语句中得到相同的错误。
这似乎是一个简单的问题,我很可能会监督一些事情,但是elif命令的缩进是相同的。这是错误输出。
File "/Users/#######/PycharmProjects/untitled/JDOS/SYS64/jdosos.py", line 64
elif cmd == "ver":
^
IndentationError: unexpected unindent
Process finished with exit code 0
而且我在程序中乱七八糟地混合使用空格和缩进没有任何问题。
感谢帮助。
答案 0 :(得分:0)
有点晚了,但是我需要一个匹配的except
块来配合try
参数。
这是固定代码,可以正常工作。
elif 'cd' in cmd:
desired_directory = cmd.split('cd ')[1]
if desired_directory == "..":
os.chdir('..')
else:
try:
os.chdir(desired_directory)
except OSError as e:
print("'%s' Is not a valid directory!" % desired_directory)