分类标签归档:Python

用Python实现一个简单的线程池


线程池的概念是什么?

在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是 如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些 很耗资源的对象创建和销毁。如何利用已有对象来服务就是一个需要解决的关键问题,其实这就是一些"池化资源"技术产生的原因。

我理解为线程池是一个存放很多线程的单位,同时还有一个对应的任务队列。整个执行过程其实就是使用线程池中已有有限的线程把任务 队列中的任务做完。这样做的好处就是你不需要为每个任务都创建一个线程,因为...

阅读全文...

python解析xml模块封装代码


有如下的xml文件:

复制代码 代码如下:

<?xml version="1.0" encoding="utf-8" ?>

1 2

下面介绍python解析xml文件的几种方法,使用python模块实现。

方式1,python模块实现自动遍历所有节点:

复制代码 代码如下:

!/usr/bin/env python

-- coding: utf-8 --

from xml.sax.handler import ContentHandler
from xml.sax import parse
class TestHandle(ContentHandle...

阅读全文...

Python2.5 2.6实用教程 入门基础篇


起步走

复制代码 代码如下:

! /usr/bin/python

a=2
b=3
c="test"
c=a+b
print "execution result: %i"%c

知识点

Python是动态语言,变量不须预先声明.
打印语句采用C风格
字符串和数字
但有趣的是,在javascript里我们会理想当然的将字符串和数字连接,因为是动态语言嘛.但在Python里有点诡异,如下:

复制代码 代码如下:

! /usr/bin/python

a=2
b="test"
c=a+b

运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换

复制代码 代码如下:

! /usr/...

阅读全文...

python抓取豆瓣图片并自动保存示例学习


环境Python 2.7.6,BS4,在powershell或命令行均可运行。请确保安装了BS模块

复制代码 代码如下:

-- coding:utf8 --

2013.12.36 19:41 wnlo-c209

抓取dbmei.com的图片。

from bs4 import BeautifulSoup
import os, sys, urllib2

创建文件夹,昨天刚学会

path = os.getcwd() # 获取此脚本所在目录
new_path = os.path.join(path,u'豆瓣妹子')
if not os.path.isdir(new_path):
os.mkdir...

阅读全文...

python实现html转ubb代码(html2ubb)


这两天在用python写一个采集器,有个功能模块是html代码转换为ubb,网上貌似没有现成程序,就自己写了个函数,顺便锻炼下自己的正则。

import re
def Html2UBB(content):
    #以下是将html标签转为ubb标签
    pattern = re.compile( '<a href=\"([sS]+?)\"[^>]*>([sS]+?)</a>',re.I)
    content = pattern.sub(r'[url=1]2[/url]',content)
    pattern = re.compile( '<...

阅读全文...

Python线程的两种编程方式


Python中如果要使用线程的话,python的lib中提供了两种方式。一种是函数式,一种是用类来包装的线程对象。举两个简单的例子希望起到抛砖引玉的作用,关于多线程编程的其他知识例如互斥、信号量、临界区等请参考python的文档及相关资料。
1、调用thread模块中的start_new_thread()函数来产生新的线程,请看代码:

复制代码 代码如下:

thread_example.py

import time
import thread
def timer(no,interval): #自己写的线程函数
while True:
print 'Thread :(%d) Time:...

阅读全文...

Python查找函数f(x) 0根的解决方法


本文实例讲述了Python查找函数f(x)=0根的解决方法。分享给大家供大家参考。具体实现方法如下:

''' root = ridder(f,a,b,tol=1.0e-9).
  Finds a root of f(x) = 0 with Ridder's method.
  The root must be bracketed in (a,b).
'''
import error
from math import sqrt
def ridder(f,a,b,tol=1.0e-9):  
  fa = f(a)
  if fa == 0.0: return a
  fb = f(b)
 ...

阅读全文...

python服务器端收发请求的实现代码


最近学习了python的一些服务器端编程,记录在此。

发送get/post请求

# coding:utf-8
import httplib,urllib #加载模块
#urllib可以打开网站去拿
#res = urllib.urlopen('http://baidu.com');
#print res.headers
#定义需要进行发送的数据   
params = urllib.urlencode({'param':'6'});
#定义一些文件头   
headers = {"Content-Type":"application/x-www-form-urlencoded",
   ...

阅读全文...

讲解Python中if语句的嵌套用法


可能有这样一种情况,当你想检查其他条件后一个条件解析为真。在这种情况下,可以使用嵌套的if结构。

在嵌套的 if 语句结构,可以在一个 if... elif... else 结构里面可有另外一个 if... elif... else 结构。
语法:

嵌套 if...elif...else 结构的语法可以是:

if expression1:
  statement(s)
  if expression2:
   statement(s)
  elif expression3:
   statement(s)
  else
   statement(s)
elif expression4:
...

阅读全文...

python抓取百度首页的方法


本文实例讲述了python抓取百度首页的方法。分享给大家供大家参考。具体实现方法如下:

import urllib
def downURL(url,filename):
  try:
    fp=urllib.urlopen(url)
  except:
    print('download error')
    return 0
  op=open(filename,'wb')
  while 1:
     s=fp.read()
     if not s:
       break
     op.write(s)
  fp.close()
  op.close()
  r...

阅读全文...