try:importtermios, TERMIOS               1exceptImportError:try:importmsvcrt                  2exceptImportError:try:from EasyDialogs importAskPassword   3exceptImportError:

getpass= "default_getpass"        4

else:

getpass= "AskPassword"          5

else:

getpass= "win_getpass"

else:

getpass= "unix_getpass"

1:termios 是 UNIX 独有的一个模块,它提供了对于输入终端的底层控制。如果这个模块无效 (因为它不在你的系统上,或你的系统不支持它),则导入失败,Python 引发我们捕捉的 ImportError 异常。

2:OK,我们没有 termios,所以让我们试试 msvcrt,它是 Windows 独有的一个模块,可以提供在 Microsoft Visual C++ 运行服务中的许多有用的函数的一个API。如果导入失败,Python 会引发我们捕捉的 ImportError 异常。

3:如果前两个不能工作,我们试着从 EasyDialogs 导入一个函数,它是 Mac OS 独有的一个模块,提供了各种各样类型的弹出对话框。再一次,如果导入失败,Python 会引发一个我们捕捉的 ImportError 异常。

4:这些平台特定的模块没有一个有效 (有可能,因为 Python 已经移植到了许多不同的平台上了),所以我们需要回头使用一个缺省口令输入函数 (这个函数定义在 getpass 模块中的别的地方)。注意我们在这里所做的:我们将函数 default_getpass 赋给变量 getpass。如果你读了官方 getpass 文档,它会告诉你 getpass 模块定义了一个 getpass 函数。它是这样做的:通过绑定 getpass 到正确的函数来适应你的平台。然后当你调用 getpass 函数时,你实际上调用了平台特定的函数,是这段代码已经为你设置好的。你不需要知道或关心你的代码正运行在何种平台上;只要调用 getpass,则它总能正确处理。

5:一个 try...except 块可以有一条 else 子句,就像 if 语句。如果在 try 块中没有异常引发,然后 else 子句被执行。在本例中,那就意味着如果 from EasyDialogs import AskPassword 导入可工作,所以我们应该绑定 getpass 到 AskPassword 函数。其它每个 try...except 块有着相似的 else 子句,当我们发现一个 import 可用时,就绑定 getpass 到适合的函数。

python可以在多平台运行 体现了_Python:使用异常处理来判断运行的平台相关推荐

  1. python为什么运行不了_python为什么安装了运行不了?

    有朋友在安装了Python之后发现不能正常使用,就说明安装过程出了问题.有同样问题的朋友和小编一起来了解一下吧. 实际上不能用.就不能算是安装成功.肯定是安装过程出错了.建议重新下载安装看看. 1.选 ...

  2. python安装成功可为什么打不开_python为什么安装了运行不了?

    有朋友在安装了Python之后发现不能正常使用,就说明安装过程出了问题.有同样问题的朋友和小编一起来了解一下吧. 实际上不能用.就不能算是安装成功.肯定是安装过程出错了.建议重新下载安装看看. 1.选 ...

  3. java 运行时类型_Java基础之RTTI 运行时类型识别

    运行时类型识别(RTTI, Run-Time Type Identification)是Java中非常有用的机制,在Java运行时,RTTI维护类的相关信息. 多态(polymorphism)是基于R ...

  4. python安装了运行不了_python详细安装教程

    本章开始,我们将详细介绍Python编程环境的搭建,工欲善其事必先利其器,所以我们这里先介绍python详细安装教程.由于Python是跨平台的,他可以运行在Windows.Linux.Mac等系统上 ...

  5. python 脚本_python脚本如何同时运行多个

    当我们想一次运行多个py脚本的时候你想到了什么应用场景了吗?当你想同时并行的处理一些对象时你有什么好方法吗?下面我就简单的总结一些这方面的小技巧,方便大家根据情况灵活处理. 1 用一个py脚本运行多个 ...

  6. python重复执行_python flask schedule重复运行 任务被重复执行问题 解决方案

    [注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!] 注意注意注意,先暂时抛开任务不谈!看下面的代码,这样有助于你快速定位你的问题点: #!/usr/bin/env pyt ...

  7. 成功解决 python 不是内部或外部命令,也不是可运行的程序或批处理文件

    成功解决'python' 不是内部或外部命令,也不是可运行的程序或批处理文件 目录 解决问题 解决思路 解决方法 解决问题 'python' 不是内部或外部命令,也不是可运行的程序或批处理文件 解决思 ...

  8. python结束线程池正在运行的线程_python之线程与线程池

    #进程是资源分配的最小单位,线程是CPU调度的最小单位.每一个进程中至少有一个线程.#传统的不确切使用线程的程序称为只含有一个线程或单线程程序,而可以使用线程的程序被称为多线程程序,在程序中使用一个线 ...

  9. 如何在cmd运行python文件夹_python怎么在cmd运行文件夹

    学习Python的人都知道数组是最常用的的数据类型,为了保证程序的正确性,需要调试程序. 因此,需要在程序中控制台中打印数组的全部元素,如果数组的容量较小,例如 只含有10个元素,采用print命令或 ...

最新文章

  1. 三维重建【二】————3D reconstruction 较为实用的算法资料整理(传统方式)
  2. 让底部始终在浏览器底部
  3. Leetcode 74. 搜索二维矩阵 (每日一题 20210907)
  4. java 利用JAX-RS快速开发RESTful 服务
  5. 索引的概念和创建索引例子
  6. Oracle入门(五B)之desc命令
  7. MySQL执行外部sql脚本文件的命令( source命令执行sql )
  8. 红橙Darren视频笔记 IOC注解框架 自己写个注解框架
  9. python 批量打印文档_使用python将Excel数据填充Word模板并生成Word
  10. mysql创建非聚集索引_一文让你明白聚集索引和非聚集索引?
  11. Pandas基础(一)——Pandas基础
  12. highcharts插件使用总结和开发中遇到的问题及解决办法
  13. springmvc跨域资料收集
  14. fastble找不到手机_Android蓝牙库FastBle的基础入门使用
  15. mysql根据经纬度计算距离并排序
  16. FTP服务器搭建报错Warning: FTP over TLS is not enabled, users cannot securely log in.
  17. JS实现当前日期是第几周
  18. 放回不等概率抽样-PPS抽样
  19. DELPHI常用函数集及简要范例 3
  20. 【AMD和CMD的区别】

热门文章

  1. 使用IDEA 1分钟搭建运行SpringMVC项目
  2. Git 中文详细安装教程01(安装篇)
  3. find VS not looking for VS2015
  4. galaxy s8 android pc,手机秒变PC!三星Galaxy S8桌面模式曝光
  5. python实现多智能体一致性_促进产学研,多智能体协同控制——科研与实践教学齐飞...
  6. 修改html自带组件样式,能否直接在组件html上为组件根元素设置自定义class
  7. java string 日期_java string类型日期比较
  8. 听障学生计算机课本,面向听障学生程序设计的计算机教学辅助系统
  9. mac linux win三系统安装教程,【教程】macbook pro上安装三系统详解教程(mac os x+windows+linux ubuntu)...
  10. 和在线视频会议服务器,什么是视频会议服务器端和客户端?