Я создаю клон DOS с python, и у меня есть команда cd
, которая позволяет вам сменить каталог. Единственная проблема заключается в том, что если вы ошибетесь или введете несуществующий каталог, программа закроется с ошибкой трассировки. Я в основном ищу его не для того, чтобы полностью закрыть программу, а вместо этого print
оператор типа 'requested_directory' Is not a directory!
и позволяющий вам печатать в другом каталоге.
Я пробовал пару вещей, в основном обработку ошибок, но без преимуществ. Я предполагаю, что до сих пор не совсем понимаю, как обрабатывать ошибки или неправильно их использую.
Любая помощь очень ценится.
Это код, который я использую для смены каталогов (elif
, потому что у меня много других команд. cmd
- необработанный ввод.)
elif 'cd' in cmd:
desired_directory = cmd.split(' ')[1]
if desired_directory == "..":
os.chdir('..')
else:
os.chdir(desired_directory)
Это вывод, когда неправильный каталог введен в
Traceback (most recent call last):
File "/Users/jrosmac/PycharmProjects/untitled/JDOS/SYS64/jdosos.py", line 47, in <module>
os.chdir(desired_directory)
OSError: [Errno 2] No such file or directory: 'raw_input goes here'