Python
文章平均质量分 77
Bob Liu
这个作者很懒,什么都没留下…
展开
-
Python网络编程:E-mail服务(九) 发送HTML格式邮件
有时,我们使用的系统会发送系统运行情况的email报告。email的内容可能是格式化的纯文本数据,但是邮件客户端接收到后,可能因为非等宽字体显示的原因,导致客户端显示的样式非常不便于阅读。本文介绍如何编写和发送HTML形式的邮件,来解决这个问题。原创 2015-04-30 22:15:11 · 14270 阅读 · 0 评论 -
Python高级特性:生成器
Python对延迟提供更多的支持,它提供了工具使得只有需要的时候才产生结果,而不是立即产生结果,从而节省了内存空间,并且允许计算时间分散到各个结果请求上。生成器函数和生成器表达式这有两种语言结构都尽可能地延迟结果的创建。原创 2015-05-30 13:44:00 · 850 阅读 · 0 评论 -
Python高级特性-列表解析
列表解析是Python是迭代的一种,可以方便的实现for或while循环的功能,且运行速度相比要快的多,本文简要介绍Python列表解析的概念和应用。原创 2015-05-25 21:37:49 · 1882 阅读 · 0 评论 -
Python网络编程:使用pexpect实现快速ssh连接
本文介绍了使用pexpect模块实现快速ssh登录的功能原创 2015-07-26 11:56:35 · 6415 阅读 · 0 评论 -
Python网络编程:E-mail服务(八) 实现抄送和密送功能
本文介绍如何实现SMTP邮件的抄送和密送功能原创 2017-01-24 17:30:04 · 22208 阅读 · 0 评论 -
使用文件锁实现进程间同步
在实际应用中,会出现这种应用场景:希望shell下执行的脚本对某些竞争资源提供保护,避免出现冲突。本文将通过fcntl模块的文件整体上锁机制来实现这种进程间同步功能。原创 2017-05-12 23:00:59 · 2338 阅读 · 0 评论 -
如何解决Windows系统下pip安装包错误Unable to find vcvarsall.bat
在Windows系统上,通过pip安装Python包时,会报"error: Unable to find vcvarsall.bat"错误。原创 2017-05-06 21:00:37 · 1836 阅读 · 3 评论 -
Python命令行工具开发之一: 使用基本标准输入编写命令行工具
在实际应用中,经常需要编写自己的命令行工具,来实现一些系统管理的功能。在本系列文章中,将依次介绍通过sys.argv、optparse、argparse模块来创建Python命令行工具,介绍如何整合Shell命令到Python命令行工具中。原创 2017-05-29 12:06:03 · 3234 阅读 · 0 评论 -
Python命令行工具开发之二:使用optparse模块编写命令行工具
Python标准库的optparse模块,有一个非常好的选项解析功能,来处理创建一个高质量的命令行工具相关复杂事务,进行高质量的命令行工具开发。尽管该模块从Python 2.7版本已经被argparse替代,但现存代码中仍有大量基于optparse模块的实现,需要了解这个模块的使用方法。本文将简要介绍optparse模块的各种使用模式,以快速掌握该模块的使用方法。原创 2017-05-29 20:50:25 · 816 阅读 · 0 评论 -
Python高级特性:全局解释器锁GIL基本概念
本文主要介绍全局解释器锁(Global Interceptor Lock)GIL的基础知识,涉及基本概念,工作原理,对多线程性能影响等。原创 2015-05-01 22:49:16 · 6569 阅读 · 0 评论 -
对比Ruby和Python的垃圾回收(1)
英文原文: visualizing garbage collection in ruby and python中文:画说 Ruby 与 Python 垃圾回收本文基于我在刚刚过去的在布达佩斯举行的RuPy上的演讲。我觉得趁热打铁写成帖子应该会比只留在幻灯片上更有意义。你也可以看看演讲录像。再跟你说件事,我在Ruby大会也会做一个相似的演讲,但是我不会去说Python的事儿,相反我会对比转载 2017-06-05 14:36:12 · 789 阅读 · 0 评论 -
对比Ruby和Python的垃圾回收(2)
英文原文地址: Generational GC in Python and Ruby中文原文: 对比Ruby和Python的垃圾回收(2):代式垃圾回收机制上周,我根据之前在RuPy上做的一个名为“Visualizing Garbage Collection in Ruby and Python.”的报告写了这篇文章的上半部分。在上篇中,我解释了标准Ruby(也被称为Matz的Ruby转载 2017-06-05 14:38:30 · 764 阅读 · 0 评论 -
Python开发者最常犯的10个错误
摘要:Python是一门简单易学的编程语言,语法简洁而清晰,并且拥有丰富和强大的类库。在日常开发中,开发者很容犯一些低级的错误,本文总结了开发者最容易犯的10个错误。Python是一门简单易学的编程语言,语法简洁而清晰,并且拥有丰富和强大的类库。与其它大多数程序设计语言使用大括号不一样 ,它使用缩进来定义语句块。在平时的工作中,Python开发者很容易犯一些转载 2017-06-11 08:28:05 · 687 阅读 · 0 评论 -
Python: [Errno 32] Broken pipe异常分析
问题描述一个比较简单的应用场景,在子进程中处理一些基本的业务逻辑,无socket相关的通信。def subprocess(): ...... def mainprocess(): pid = os.fork() if pid == 0: subprocess()近期该业务模块不能正常工作,并报告[Errno 32] Broken pipe异常。运行环境:Python 2.原创 2015-07-29 21:56:56 · 52772 阅读 · 0 评论 -
Python内置函数: __nonzero__
简介类的nonzero方法用于将类转换为布尔值。通常在用类进行判断和将类转换成布尔值时调用。官网定义查看Python手册,对此内置函数的定义如下:object.__nonzero__(self) Called to implement truth value testing and the built-in operation bool(); should return Fal原创 2017-07-12 15:51:13 · 1890 阅读 · 3 评论 -
Python扩展包的非官方Windows二进制文件下载网址
https://www.lfd.uci.edu/~gohlke/pythonlibs本页面为Python编程语言的官方CPython发行版提供了许多科学开源扩展包的32位和64位Windows二进制文件。这些文件是非官方的(意思是:非正式的,无法识别的,个人的,不受支持的,没有担保,没有责任,按“原样”提供),并且可用于测试和评估。大多数二进制文件都是从PyPI或项目公共版本控制系统中的源代码构建...原创 2018-03-23 09:56:30 · 856 阅读 · 0 评论 -
Python网络编程:E-mail服务(四) 编写传统邮件
本文通过标准Python库的email模块提供MIMEText类,进行传统email的编写,从而对email模块有一个初步的认识。原创 2015-04-25 18:36:49 · 7749 阅读 · 0 评论 -
Python网络编程:E-mail服务(五)深入理解email模块的message和MIME类
本文主要介绍Python标准库email的message和MIME类,并分析了相关的实现,能够是读者更好的使用email模块。原创 2015-04-25 23:05:19 · 18523 阅读 · 2 评论 -
Python高级特性:利用类构造及析构原理实现单实例模式
本文主要结合类构造和析构的原理,实现单实例模式。原创 2015-04-07 22:18:22 · 1151 阅读 · 0 评论 -
pylint的安装
本文介绍了在Ubuntu 9和Python 2.6开发环境下,如何安装pylint工具;并简单介绍pylint与Eclipse+PyDev开发环境的集成。原创 2015-02-05 17:27:34 · 15404 阅读 · 0 评论 -
pylint的配置与使用
简介本文主要介绍pylint的配置与使用,如何安装请参考pylint安装,详细信息可参考pylint官方网站的帮助文档Pylint User Manual。获取帮助信息pylint安装成功后,可以通过运行"pylint --help"来快速查看pylint的帮助信息;相关信息基本能够支撑起快速使用起来pylint的基本功能。bob@Ubuntu:~$ pylint --helpN原创 2015-02-09 21:07:00 · 34065 阅读 · 0 评论 -
Python代码优化:优化原则
简介本文介绍了进行Python代码优化需要遵循的基本原则,该原则也适用于其它语言的代码优化工作。优化原则不论最终的优化结果如何,代码优化工作总是有代价的。如果代码能够正常工作,却花了大量精力是其运行的更快,未必是一件值得尝试的有价值的事情。进行代码优化,需要记住几条原则:1. 确保代码能够正常工作之前不要考虑优化工作应该避免在编写代码的同时,对其进行优化,这是程序员最常见的原创 2015-02-13 17:02:58 · 1542 阅读 · 1 评论 -
Windows 64位安装SQLObject
本文介绍通过源码方式在Windows 64位环境下安装SQLObject软件开发包原创 2015-03-04 14:51:29 · 1344 阅读 · 0 评论 -
Python代码优化:优化策略
本文介绍了Python代码优化策略,相关原则和方法同样适用于其它编程语言编写的应用程序。原创 2015-02-16 22:42:48 · 1258 阅读 · 0 评论 -
Python高级特性:类属性
Python语言除了支持类实例的数据属性之外,还支持类属性,其为类本身所有。本文结合类属性的实例,介绍类属性的应用。原创 2015-03-20 21:46:20 · 2112 阅读 · 0 评论 -
Python高级特性:函数参数传递研究
本文简要介绍Python函数参数传递的基本原理原创 2015-03-28 22:17:58 · 1628 阅读 · 0 评论 -
Python扩展内置类型的方法
除了实现新的类型的对象方式外,有时我们也可以通过扩展Python内置类型,从而支持其它类型的数据结构,比如为列表增加队列的插入和删除的方法。本文针对此问题,结合实现集合功能的实例,介绍了扩展Python内置类型的两种方法:通过嵌入内置类型来扩展类型和通过子类方式扩展类型。原创 2015-03-13 22:16:46 · 2117 阅读 · 0 评论 -
Python高级特性:类构造与析构
本文主要结合一些实际的例子,介绍了Python类的构造,初始化和析构的原理。参考资料1. https://www.python.org/download/releases/2.2/descrintro/#__new__原创 2015-03-23 22:59:36 · 3167 阅读 · 0 评论 -
Python网络编程:接口地址查询
在Linux系统中,我们可以通过ifconfig,route等shell命令来查看系统接口配置,网关和路由等信息。通过shell的正则表达式功能,通过系列复杂操作,我们可以从字符串中提取出相关的信息。现在,通过Python的netifaces模块,可以很容易的获取这些信息。本文主要介绍netifaces的使用。原创 2015-04-02 22:22:15 · 5125 阅读 · 2 评论 -
Ubuntu 9.04下安装MySQLdb 1.2.5
简介在Ubuntu 9.04系统下,Python 2.6.2开发环境下,安装配置MySQLdb 1.2.5遇到一些问题,在这里简单总结一下问题1: mysql_config: not found下载了MySQLdb-1.2.5的源码解压,运行"sudo python setup.py install"发现了下面的错误信息sh: mysql_config: not foundTra原创 2015-03-18 18:24:27 · 1089 阅读 · 0 评论 -
Python网络编程:E-mail服务(一)原理篇
很多程序员都遇到过这样的需求,就是以自动的方式产生并发送邮件,Python提供了相关的模块支持邮件的编码和发送等相关功能。为了更好的编写相关的E-mail服务,我们需要更深入的了解相关的原理。本文简要介绍E-mail服务的原理,讲解邮件编码和邮件传输的基本知识,相信相关内容能够加深对E-mail的认识。原创 2015-04-22 22:10:07 · 15059 阅读 · 0 评论 -
Python网络编程:E-mail服务(二)传统E-mail格式
邮件的格式对所有不同的E-mail协议来说都非常重要。可以用两种方式来看email信息,简单文本信息和多用途Internet邮件扩展形式MIME(Mutlipurpose InternetMail Extensions).本文主要是讲解传统E-mail格式。原创 2015-04-22 22:55:49 · 7558 阅读 · 0 评论 -
Python网络编程:E-mail服务(三)MIME解析
简介上篇文章中,提到MIME(Multipurpose Internet Mail Extensions)定义了邮件的格式和编码,本文讲详细讲解这些内容。MIME作用为了能通过电子邮件发送非ASCII数据,IETF定义了多用途Internet邮件扩充MIME(Multipurpose Internet MailExtension)。MIME没有改动SMTP或POP3,也没有替代它们原创 2015-04-22 22:33:06 · 8819 阅读 · 0 评论 -
Python高级特性:私有属性
在其它高级编程语言,如Java、C++等,均支持对属性和函数的访问控制,如public, private等关键字;也许你会好奇在Python语言是否支持数据隐藏功能呢。本文结合实际案例,来介绍Python编程语言中如何实现私有属性和私有函数,实现数据隐藏的。原创 2015-04-12 22:02:16 · 2520 阅读 · 0 评论 -
Faiss: 使用conda安装faiss-cpu库
Faiss是用于相似性搜索和密集聚类向量的库,安装了Anaconda版本的Python,可以使用conda命令来安装faiss-cpu版本库:conda install -c pytorch faiss-cpu 有些朋友留言问faiss-cpu支持的操作系统版本,从目前anaconda官网给出的信息,目前仅支持MAC和Linux的版本,并不支持Windows系统。相关信息可以参考官网的给...原创 2018-10-12 12:06:18 · 12381 阅读 · 8 评论