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

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 到适合的函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python精通时间_学Python需要多久能学会?精通Python需要多长时间?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 严格意思上的说,Python其实是一个脚本语言,编程语言多种多样,但是却有开源和闭源之分,Python就是一种开放核心源代码编程语言,其开发代码的效率非常高,代码编…

linux 文档编辑器 word,linux下vi编辑器命令大全

常用命令linux下vi编辑器命令大全来源:考试大 【学而优则进,考试大以成!】 2007年8月14日  文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi…

西门子触摸屏修改ip地址_基于博途V15 西门子S7-1200与触摸屏一个简单的例子

本篇是《基于博途V15 西门子S7-1200 ...》系列的后续篇,看懂本篇文章之前请大家关注我,然后查找相关文章,学习之后再学习此篇。也请专业领域的大神批评指正。感谢大家关注与支持!步骤:1. 创建项目创建名称为PLC_HMI2. …

mac os和linux和安卓,在我的安卓手机里,安装Windows和macOS系统

原标题:在我的安卓手机里,安装Windows和macOS系统不知道各位差友还记不记得,世超前阵子分享过一款无需越狱,就能让 iPhone 和 iPad 运行其它系统的虚拟机软件 UTM。当时世超正是靠着这个软件,才得以让 iPad 成功跑上了…

python连接mysql代码_Python3连接MySQL(pymysql)转账代码

# coding:utf8 import sys # Python3 采用pymysql 连接MySQL import pymysql class TransferMoney(object): def __init__(self,conn): self.connconn def check_acct_available(self,acctid): cursor self.conn.cursor() try: sql"select * from account where acctid%s…

gc java root_C#技术漫谈之垃圾回收机制(GC)

GC的前世与今生虽然本文是以.NET作为目标来讲述GC,但是GC的概念并非才诞生不久。早在1958年,由鼎鼎大名的图林奖得主John McCarthy所实现的Lisp语言就已经提供了GC的功能,这是GC的第一次出现。Lisp的程序员认为内存管理太重要了,所…

中信银行c语言笔试题库,中信银行笔试题型及题目

中信银行笔试题型及题目考试题型一:专业知识(2个小时)1.专业知识单选,60题,每题1分。2.专业知识多选,20题,每题1分,未选全即少选得0.5分,错选、漏选得0分。3.英语阅读,20分&#xff…

北航软件工程硕士_21考研择校 | 北京航空航天大学软件工程怎么样?

☝☝☝ 软件工程考研独家平台撰稿 | 康康哥编辑 | 丽丽姐本文由懂计算机、软件工程的博士师哥原创01学校名气北京航空航天大学,简称“北航”,是一所把“985”、“211”、“双一流”写进骨子里的学校。为什么这么说呢?这得从源头说起&#xff…

kettle同步数据到hive 巨慢_超详细教程,kettle ETL mysql到hadoop hive数据抽取,值得收藏...

那么如何将mysql数据导入到hive里呢,kettle里有自带方法,可以通过表输入和表输出来实现,不过自带的方法载入数据极其缓慢,不推荐使用这种方法。1、hive建表注意hive表使用“^”作为分隔符,这个可以更具实际情况来。2、…

linux 查看path文件,linux入门之环境变量与文件查找

环境变量分类当前 Shell 进程私有用户自定义变量,如上面我们创建的 temp 变量,只在当前 Shell 中有效。Shell 本身内建的变量。从自定义变量导出的环境变量。declare tmp;tmp"shiyanlou i love y";echo $tmp ; **不要忘记$**实验楼…

python手机编译器可以干什么_世界上最好的Python编辑器是什么?

在这种情况下,你需要使用一个 IDE(集成开发环境)或专用的代码编辑器。由于 Python 是最流行的编程语言之一,IDE 的选择也非常多。那么问题来了:「究竟什么样的 IDE 最适合 Python?」 很明显,没有…

c是过程化语言吗数据库,A.数据库语言B.过程化语言C.宿主语言D.数据库管理系统...

A.数据库语言B.过程化语言C.宿主语言D.数据库管理系统更多相关问题[填空题] 为了安全起见,起动发动机前要检查()有无行人。---叉车操作和保养手册第2-77.在起动叉车前()以警告周围的人。[单选] 制造厂规定叉车走合期一…

python读取xlsx文件pandas_用Python的pandas框架操作Excel文件中的数据教程

引言 本文的目的,是向您展示如何使用pandas来执行一些常见的Excel任务。有些例子比较琐碎,但我觉得展示这些简单的东西与那些你可以在其他地方找到的复杂功能同等重要。作为额外的福利,我将会进行一些模糊字符串匹配,以此来展示一…

delphi 生成 超大量xml_用OpenCV4实现图像的超分别率

用OpenCV4实现图像的超分别率本实验原文链接: f"https://arxiv.org/pdf/1807.06779.pdf">https://arxiv.org/pdf/1807.06779.pdf原文摘要单图像超分辨率(SISR)的主要挑战是如何恢复微小纹理等高频细节。然而,大多数最…

dubbo全局异常处理_基于spring aop的dubbo异常统一处理

dubbo统一异常处理,调用方只显示封装后的异常。1、返回封装后的Exception2、返回封装后的统一返回信息import org.aspectj.lang.annotation.AfterThrowing;import org.aspectj.lang.annotation.Aspect;import org.slf4j.Logger;import org.slf4j.LoggerFactory;impo…

python123平台作业答案第十一周_马哥2016全新Linux+Python高端运维班第十次作业

系统的INPUT和OUTPUT默认策略为DROP,请完成以下关于iptables的题目;iptables -A INPUT -d 10.18.11.13 -p tcp --dport 22 -j ACCEPT #允许ssh端口 iptables -A OUTPUT -s 10.18.11.13 -p tcp --sport 22 -j ACCEPT iptables -P OUTPUT DROP #设置OUTPUT…

义教志愿服务系统c语言,[志愿服务]以己为师 东科学子义教传爱心

为积极响应国家教育计划,丰富孩子们的暑期生活,进一步落实“春泥”课堂先进义教理念,7月12日,浙江海洋大学东海科学技术学院大学生“海岛征程十五载,红色基因永传承”赴蚂蚁岛实践团23名队员走进蚂蚁岛文化礼堂&#x…

主动断开socket链接_TCP连接与断开详解(socket通信)

http://blog.csdn.net/Ctrl_qun/article/details/52518479一、TCP数据报结构以及三次握手TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接。…

大整数算术求值 c语言 栈,用C语言实现 多位整数的四则运算,用栈,例如56*(12+20)-102/2...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼gets(szExpression);// 中缀表达式转后缀表达式&#xff0c;结果保存在expression中for (int i 0; i < strlen(szExpression); i){if (isspace(szExpression[i])) // 空白字符{if (bFindBegin){expression[num].type 1;expres…

java可视化压缩_WEB可视化技术发展

EverCraft一直在关注Web可视化技术的发展&#xff0c;本文对国外一篇感觉很不错的综述性文章进行翻译&#xff0c;供这一领域的爱好者相互学习。这篇paper的信息为&#xff1a;“Mwalongo, F., et al., State-of-the-Art Report in Web-based Visualization. COMPUTER GRAPHICS…