解析XML:更便捷的方式
在前面介绍的解析XML的方法都是利用Python标准库中的API来实现的,即ElementTree和DOM。不过貌似都觉得不是非常直观。因此,这里我们引入一个第三方库来更方便的完成需求 —— BeautifulSoup。BeautifulSoup是一个功能强劲的用于解析HTML/XML的模块。还是以之前的例子切入:<?xml version="1.0" encoding="utf-8"?>
<CSubmitState xmlns:xsd="http://www.w3.org/2001/XM...
解析XML:DOM
在之前所写的解析XML:ElementTree一文中,我是用Python标准库里的xml.etree.ElementTree来实现的。不过这种对于含有命名空间的XML则显得不大方便和直观。其实Python标准库里还提供了更简单的方法,那就是利用The Document Object Model API,即xml.dom。这种方法通过检索DOM树实现。还是以之前的XML文档为例:<?xml version="1.0" encoding="utf-8"?>
<CSubmitState xmlns:xsd...
解析XML:ElementTree
解析XML是很常见的需求,利用Python内置的ElementTree XML API即可实现。假如有如下一个简单的XML文档(来自于微信的XML数据包):<xml>
<ToUserName>toUser</ToUserName>
<FromUserName>fromUser</FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType>text</MsgType>
<Content>thi...
利用Python列表实现堆栈(二):实现
以下定义了一个全功能的堆栈类:class error(Exception): pass # when imported: local exception
class Stack:
def __init__(self, start=[]):&nbs...
利用Python列表实现堆栈(一):剖析
堆栈是一种非常常见且简单易用的数据结构,适用在多种应用场合。堆栈是一种数据项按序排列的数据结构,只能在一端(栈顶)对数据项进行插入和删除,遵循后进先出的原则。在不同的需求中,栈的操作可能不仅限于进栈和出栈,可能还需要检测栈是否为空,获取栈顶元素但并不将其弹出,遍历栈内所有元素,或者检测某元素是否在栈中存在等等。在Python中,一个简单的列表元素通常足够用来实现栈:它允许对其中的元素进行任意操作,从任意一端插入或取出元素。下表总结了一些Python内置的列表操作方法来模拟栈操作。操作栈顶处于列表末尾栈顶位于列表起始位置栈顶位于列表起始位置新建stack=['a', ...
利用Python生成随机数
利用 Python 来实现一些小功能是很简单、快捷的,比如...生成随机数。这里我们会用到两个内置模块:1. string —— 包含许多有用的常量和类2. random —— 用于生成随机数现在有一个简单的需求,就是生成一个任意长度的随机数用作验证码。在 random 中有多种方法可以帮助我们实现随机数的生成,其中之一就是 random.random() ,它生成一个 [0.0, 1.0) 之间的随机数,我们可以利用它来实现:
def random_digits(length):
re...
Python shell中方向键“抽风”的解决办法
今天在Linux下使用Python Shell的时候,发现方向键不能正常使用,总是显示“^[[A^[[B^[[C^[[D”的奇怪字符,通过搜索后发现解决办法很简单,就是重新编译readline:easy_install readline不过在编译时就正好遇到上篇博客中提到的问题,正好一并解决!
HTTPSHandle in Python2.7
今天重新安装了CentOS6.4,在搭建Python Django环境时,安装pip出现如下问题:
ImportError: cannot import name HTTPSHandle这是因为没有安装相应的支持模块,于是yum安装openssl:yum install openssl openssl-devel重新编译安装Python2.7后,让我困惑的是问题依旧,通过搜索后发现,需要SSL编译支持是需要手动打开的:打开Models/Setup.dist,找到如下行并注意取消注释:
# socket line a...
Python字典的排序方法一则
今天需要对Python的字典进行排序,以获得有效的时间序列,采用了如下方法:
首先生成一个示例字典:
>>> range_a = random.sample(range(0, 10), 10)
>>> range_b = random.sample(range(10, 20), 10)
>>> range_a
[9, 1, 7, 6, 5, 0, ...
APScheduler —— Python化的Cron
APScheduler全程为Advanced Python Scheduler,是一款轻量级的Python任务调度框架。它允许你像Cron那样安排定期执行的任务,并且支持Python函数或任意可调用的对象。安装APScheduler可以使用pip工具安装:pip install apscheduler或在Pypi上下载最新的源码包(https://pypi.python.org/pypi/APScheduler/)进行安装:python setup.py install简单的应用(翻译自官方文档)以默认配置启动Schedulerfrom apscheduler.schedule...