分类目录归档:Python

Python中使用logging模块打印log日志详解


学一门新技术或者新语言,我们都要首先学会如何去适应这们新技术,其中在适应过程中,我们必须得学习如何调试程序并打出相应的log信息来,正所谓“只要log打的好,没有bug解不了”,在我们熟知的一些信息技术中,log4xxx系列以及开发Android app时的android.util.Log包等等都是为了开发者更好的得到log信息服务的。在Python这门语言中,我们同样可以根据自己的程序需要打出log。

log信息不同于使用打桩法打印一定的标记信息,log可以根据程序需要而分出不同的log级别,比如info、debug、warn等等级别的信息,只要实时控制log级别开关就可以为开发人员提...

阅读全文...

Python 解析XML文件


Python文件:

复制代码 代码如下:

parsexml.py

本例子参考自python联机文档,做了适当改动和添加

import xml.parsers.expat

控制打印缩进

level = 0

获取某节点名称及属性值集合

def start_element(name, attrs):
global level
print ' '*level, 'Start element:', name, attrs
level = level + 1

获取某节点结束名称

def end_element(name):
global level
level = level - 1
print '...

阅读全文...

Python爬虫框架Scrapy安装使用步骤


一、爬虫框架Scarpy简介
Scrapy 是一个快速的高层次的屏幕抓取和网页爬虫框架,爬取网站,从网站页面得到结构化的数据,它有着广泛的用途,从数据挖掘到监测和自动测试,Scrapy完全用Python实现,完全开源,代码托管在Github上,可运行在Linux,Windows,Mac和BSD平台上,基于Twisted的异步网络库来处理网络通讯,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片。

二、Scrapy安装指南

我们的安装步骤假设你已经安装一下内容:<1>Python2.7<2>lxml<3>OpenSSL,我们使用Python的包管理工具pip或者easy_in...

阅读全文...

python实现合并两个数组的方法


本文实例讲述了python实现合并两个数组的方法。分享给大家供大家参考。具体如下:

python合并两个数组,将两个数组连接成一个数组,例如,数组 a=[1,2,3] ,数组 b=[4,5,6],连接后:[1,2,3,4,5,6]

方法1

a=[1,2,3]
b=[4,5,6]
a=a+b

方法2

a=[1,2,3]
b=[4,5,6]
a.extend(b)

希望本文所述对大家的Python程序设计有所帮助。

阅读全文...

Python中的ceil()方法使用教程


ceil()方法返回x的值上限 - 不小于x的最小整数。
语法

以下是ceil()方法的语法:

import math

math.ceil( x )

注意:此函数是无法直接访问的,所以我们需要导入math模块,然后需要用math的静态对象来调用这个函数。
参数

x -- 这是一个数值表达式。

返回值

此方法返回不小于x的最小整数。
示例

下面的例子显示了ceil()方法的使用。

#!/usr/bin/python
import math  # This will import math module

print "math.ceil(-45.17) : ", math.ceil(-4...

阅读全文...

python实现从字符串中找出字符1的位置以及个数的方法


本文实例主要实现给出任意字符串,获取字符串中某字符的位置以及出现的总次数。

实现该功能代码的时候可以使用函数enumerate来将字符串分离成位置和字符,然后进行比较即可。

具体实现代码如下:

#!/bin/env python
#-*- coding:utf-8 -*-
#
"""
  用enumerate将string中的1都找出来,
  用enumerate实现:
"""
def get_1_pos(string):
  onePos=[]
  try:
    onePos=list(((pos,int(val)) for pos,val in enumerate(string)...

阅读全文...

python实现获取序列中最小的几个元素


本文实例讲述了python实现获取序列中最小的几个元素。分享给大家供大家参考。

具体方法如下:

import heapq 
import random 
def issorted(data): 
 data = list(data) 
 heapq.heapify(data) 
 while data: 
  yield heapq.heappop(data) 

alist = [x for x in range(10)] 
random.shuffle(alist) 
print 'the origin list is',alist 
print 'the min in the li...

阅读全文...

Python访问MySQL封装的常用类实例


本文实例讲述了Python访问MySQL封装的常用类。分享给大家供大家参考。具体如下:

python访问mysql比较简单,下面整理的就是一个很简单的Python访问MySQL数据库类。

自己平时也就用到两个mysql函数:查询和更新,下面是自己常用的函数的封装,大家拷贝过去直接可以使用。
文件名:DBUtil.py

复制代码 代码如下:

-- encoding:utf8 --

'''
@author: crazyant.net
@version: 2013-10-22

封装的mysql常用函数
'''

import MySQLdb

class DB():
def init(self, ...

阅读全文...

Python中使用装饰器时需要注意的一些问题


装饰器基本概念

大家都知道装饰器是一个很著名的设计模式,经常被用于AOP(面向切面编程)的场景,较为经典的有插入日志,性能测试,事务处理,Web权限校验,Cache等。

Python语言本身提供了装饰器语法(@),典型的装饰器实现如下:

@function_wrapper
  def function():
    pass

@实际上是python2.4才提出的语法糖,针对python2.4以前的版本有另一种等价的实现:

def function():
    pass

  function = function_wrapper(function)

装饰器的两种实现

函数包装器 - 经...

阅读全文...

在Docker上部署Python的Flask框架的教程


本文中,我将尝试展示用Docker开发python应用(主要是Web应用)的可行方法。虽然我本人专注于Python的Flask微框架,但本文目的是演示如何通过Docker更好地开发和共享应用程序,(由任何语言和框架开发的应用程序)。Docker通过封装依赖项,大大减少了开发环境和正式产品的差距。

大多数Python开发人员在开发中使用virtualenv。它提供了一种易用的机制让应用程序使用自己专用的依赖项,这些依赖项可能与在其它应用程序或操作系统存在冲突(尤其是不同的Pyhton版本,还有不同的库版本等等)。个人而言,我对virtualenv一直没有太大兴趣,原因如下:

  1. 我经常忘记启...

阅读全文...