分类 Python 中的文章

利用logging模块轻松地进行Python日志记录(转)

在开发过程中,如果程序运行出现了问题,我们是可以使用我们自己的 Debug 工具来检测到到底是哪一步出现了问题,如果出现了问题的话,是很容易排查的。但程序开发完成之后,我们会将它部署到生产环境中去,这时候代码相当于是在一个黑盒环境下运行的,我们只能看到其运行的效果,是不能直接看到代码运行过程中每一步的状态的。在这个环境下,运行过程中难免会在某个地方出现问题,甚至这个问题可能是我们开发过程中未曾遇到的问题,碰到这种情况应该怎么办? 如果我们现在只能得知当前问题的现象,而没有其他任何信息的话,如果我们想要解决掉这个问题的话,那么只能根据问题的现象来试图复现一下,然后再一步步去调试,这恐怕是很难的,很大的概率上我们是无法精准地复现这个问题的,而且 Debug 的过程也会耗费巨多的时间,这样一旦生产环境上出现了问题,修复就会变得非常棘手。但这如果我们当时有做日志记录的话,不论是正常运行还是出现报错,都有相关的时间记录,状态记录,错误记录等,那么这样我们就可以方便地追踪到在当时的运行过程中出现了怎样的状况,从而可以快速排查问题。 因此,日志记录是非常有必要的,任何一款软件如果没有标准的日志记录,都不能算作一个合格的软件。作为开发者,我们需要重视并做好日志记录过程。

……

阅读全文

python中的异常处理

写程序肯定要接触异常处理,还好python中的异常处理比较简单,但是有些细节还是需要好好看一下 这里记录一下try在python中的使用。

……

阅读全文

使用Redis作为消息队列实现生产消费与发布订阅

日常的工作中,经常会用到队列(Queue),在python中有原生的队列,但是由于原生的队列是存在于内存当中,当系统重启后队列里的消息就没有,且无法进行分步式,Redis中的List数据有四种原语,LPUSH,LPOP,RPUSH,RPOP,配合使用可以实现简单的生产消费模型。

……

阅读全文

使用python抓取自住房信息

使用python也有一段时间了,最近比较关注自住房信息,虽说它更新的比较缓慢,但是平时也不怎么会特意的去它的网站上去看, 于是就想用python抓它的信息,如果有新的信息就给自己发个邮件,这样手机上得到通知以后就可以再去它的网站上看看。 功能比较简单,但是用到的点还是挺多的,这里记录一下。 主要有以下几个步骤

  1. python beautifulsoup 与requests的使用
  2. ubuntu 中安装 mysql 与mysql-python
  3. beautifulsoup与requests编码的问题
  4. 使用gmail发送邮件,其中gmail采用两步认证要单独申请一个密码
  5. 在ubuntu中使用crontab定时来触发脚本
……

阅读全文

用于python的定时任务apscheduler的使用

最近在项目中有一个比较特殊的需求,要求在每个月第二个周二暂停任务,然后周三再开启 于是在网上查了一下,python中有一个apscheduler库可以实现,而且这个框架还挺强大的 这里记录一下它的使用

……

阅读全文

webpy的常规使用与踩过的坑

在使用python做网站的时候首先接触的就是webpy了,这个框架小巧简单,对于小型的网络应用功能足以了,在使用的过程中也遇到过一些总是,在这里也记录总结一下

基础的框架搭建

安装

pip install web.py -i https://pypi.douban.com/simple
……

阅读全文

使用python进行文件夹对比

最近写一个小脚本,在使用系统急救箱扫描并且处理完后,要将处理以后的样本和提供的标准进行对比 已经提供了样本与处理以后的文件,我要写的脚本就是启急救箱并且将两个文件夹进行比较 启动并且扫描比较好实现,但是在进行文件夹对比的时候走了一些弯路 上网查到python的标准库里有一个filecmp类,这个类可以对文件夹或者文件进行对比,使用起来还是比较方便的 filecmp官方文档/

使用最下面的例子程序,我又对其进行了扩充 我想达到的目的就是先对两个文件夹进行比较,输出不同的文件,然后再输出各自文件夹中独有的文件

……

阅读全文

使用国内镜像源来加速python pypi包的安装

在国内使用pip安装包的时候,很多时候由于各种原因无法正常使用pypi.python.org的源,还好有国内的良心网站提供了国内镜像

网上的方法都是在%HOMEPATH%中新建pip目录,再新建一个pip.ini,可是我试了以后还是不能用,也不知道原作者是否可以用

后来我看了一下它的文档

……

阅读全文

使用uiautomator的python封装进行android的UI测试

最近项目中有个需求要在至少100台手机上对应用进行兼容性测试,首先想到的就是自动化来操作,不想一台台的操作相同的重复操作

基本的需求是这样的,安装被测试的应用,启动并退出,然后安装测试样本,检测是否有相应的弹窗拦截

考虑到市面上的各种测试框架与自已熟悉的编程语言,最后选择了google自家的uiautomator来搞,借助于前人对其进行了python封装,所以一开始还是挺顺利的,但是整个过程中还是有很多需要注意的地方

……

阅读全文