【问题标题】:Stop python program from closing when a directory is not found找不到目录时停止关闭python程序
【发布时间】:2019-10-12 02:43:02
【问题描述】:

我正在使用 python 创建一个 DOS 克隆,并且我有一个命令 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'

【问题讨论】:

标签: python python-2.7 error-handling directory operating-system


【解决方案1】:

使用异常处理:

try:
    os.chdir(target)
except OSError as e:
    # handle the failure of the chdir call

【讨论】:

    【解决方案2】:

    相信你需要handle这个错误。

    try:
        os.chdir(desired_directory)
    except OSError as e:
        print e.args[0]
    

    【讨论】:

    • 我应该使用 3.x,但我很懒惰,而 2.7 是我在学校学习编程时学到的。我可能很快就会开始改变整个程序。
    猜你喜欢
    • 2021-03-20
    • 2018-07-17
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    • 1970-01-01
    相关资源
    最近更新 更多