2014-02-27 44 views
0

我最近开始为一个朋友制作一个程序,当我尝试用用户输入制作一个目录列表时,我无法弄清楚如何处理这个错误。 目录示例Python列表目录无错

  • 用户
  • Prefrences
  • 备忘录

如何让这个是显示一样,如果用户输入“家”“无效目录”错误?

这里是我的代码小ammount的:

ch1 = input('Path To List: ') 
path = ch1 
dirList = os.listdir(path) 
for fname in dirList: 
    print('-', fname) 
cmd() 

是否有任何代码,我可以包括修复这个错误?

谢谢!

+1

'os.listdir'如果路径无效,将引发一个'OSError'例外...还有什么你需要?捕获异常并输出错误消息。 – isedev

+0

你甚至测试了你到目前为止?如果路径/目录不存在,则引发异常,程序将退出。只需添加一个try/except块来捕捉错误,就像@isedev所说的那样 – samrap

回答

0

正如评论所说,一个try/except块就足以做你想要什么:

import os 
import sys 
# Get input as a string 
input = raw_input('Path To List: ') 
# Get absolute path in case user gives a relative path 
path = os.path.abspath(input) 
try: 
    dirList = os.listdir(path) 
except OSError: 
    print("Invalid directory") 
    sys.exit() 
for fname in dirList: 
    print(fname)