python isfile在这里不起作用

时间:2017-03-22 10:48:36

标签: python-3.x

这是我无法弄清楚为什么不工作的事情。 我故意设置sd_path以使它不存在,并且我期待它转到"不存在"异常,并退出代码。但是,相反,它并没有引起任何错误,而是进入" All Fine"

sd_path = "/home/rudra/foo/src/bar"
try:
  os.path.isfile(sd_path)
  try:
    os.access(sd_path, os.X_OK)
  except:
    print("Executable "+sd_path+" does not have suitable permission")
    sys.exit(3)
except:
  print("Executable "+sd_path+" does not exists")
  sys.exit(3)
print("All Fine")

1 个答案:

答案 0 :(得分:3)

使用if代替try/except

sd_path = '/home/rudra/foo/src/bar'

if os.path.isfile(sd_path):
    if os.access(sd_path, os.X_OK):
        print('All Fine')
    else:
        print('Executable', sd_path, 'does not have suitable permission')
        sys.exit(3)
else:
    print('Executable', sd_path, 'does not exists')
    sys.exit(3)