
编程语言 python
文章平均质量分 54
小熊_晶晶
热爱编程喜欢钻研技术诚交天下朋友共同探讨技术人生.QQ956868335
展开
-
python文件读写
读取文件最方便的是一次性读入文件内容并放置到一个大字符串中all_the_text = open('thefile.txt').read()#文本文件中的所有文本all_the_text = open('thefile.txt','rb').read()#二进制文件中的所有数据为了安全,最好给打开的文件指定一个名字 例如file_object = open('原创 2013-09-26 17:21:44 · 630 阅读 · 0 评论 -
SimpleXMLRPCServer过滤客户主机
在用SimpleXMLRPCServer库实现rpc服务的时候,经常会要求拒绝某些客户主机的访问,此时可以通过对SimpleXMLRPCServer库进行二次封装来实现。# give the base class a short, readable nicknamefrom SimpleXMLRPCServer import SimpleXMLRPCServer as BaseServe原创 2013-11-01 10:33:16 · 1309 阅读 · 0 评论 -
Python 调用super初始化报错 "super() argument 1 must be type, not classobj"
在子类中调用super初始化时发生错误:其中FatherClass为超类,仔细检查并无语法错误。 super(FatherClass, self).__init__()TypeError: super() argument 1 must be type, not classobj原因如下:在python2.2版本之前,直接调用超类的方法,后来改成通过super来调用,原因是原创 2013-11-01 14:58:59 · 7602 阅读 · 0 评论 -
python 调试Django程序时错误 "AttributeError: 'module' object has no attribute 'Shell'"
运行django manage.py时出现如下错误:[root@va3 hello]# python manage.py shell Traceback (most recent call last): File "manage.py", line 11, in execute_manager(settings)原创 2013-11-01 15:12:32 · 3229 阅读 · 0 评论 -
python笔记
1.pip笔记:$ pip install SomePackage$ pip search "query"$ pip install --upgrade SomePackage$ pip install --upgrade SomePackage==version2. __main__里有一个变量a,该文件里有一个函数a,则会重复。都属于模块里的东西。3. prin原创 2013-10-22 14:07:47 · 580 阅读 · 0 评论 -
简单工厂模式
简单工厂模式中包含的角色及其职责1. 工厂(Creator)角色简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。2. 抽象产品(Product)角色简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。3. 具体产品(Concrete Product)角色是简单工厂模式的创建目标,所有创建的对象都是充当这原创 2013-12-06 11:33:48 · 607 阅读 · 0 评论 -
简单工厂模式与策略模式的区别
这几天看了几天设计模式,之前对设计模式也有一定的了解,但是都没有深入地研究过,只是知道怎么用,最近打算再深入研究一下,重新打开了之前写过的用到设计模式的代码,对之前的疑问一个个的刨根问底,同时对简单工厂模式和策略模式进行了对比,个人感觉两个的大概思路没有怎么变,都是通过多态去减少代码的耦合度,怎么看两个都是如出一辙,最后终于找到了两个的本质区别,在此和大家分享下:简单工厂模式:传条件(这条原创 2013-12-07 15:25:30 · 838 阅读 · 0 评论 -
from * import 的实质
将被import的module(即python文件) 在当前环境下执行一遍。当多次import同一个module时, python会保证只执行一次。与import类似, 被导入的module仍然会执行且仅执行一次.区别是当以 "from *** import " 方式导入module时, python会在当前module 的命名空间中新建相应的命名。即, "from t2 import var原创 2013-12-10 18:13:30 · 600 阅读 · 0 评论 -
策略模式
策略模式:它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法变化,不会影响到使用算法的客户策略模式就是用来封装算法的,但在实践中,我们发现可以用它来,封装几乎任何类型的规则,只要在分析过程中听到需要在不同时间应用不同的 业务规则,就可以考虑使用策略模式处理这种变化的可能性。#include #include using namespace std;原创 2013-12-06 15:26:30 · 591 阅读 · 0 评论 -
用python库telnetlib脚本控制交换机详解
In [1]: Host = '1.1.1.1'In [2]: username = ‘abc’ #用户名In [3]: password = 'abc’ #密码In [4]: superpass = 'abc' #超级密码In [6]: import telnetlib In [7]: tn = telnetlib.Telnet(Host) #连接交换机原创 2013-10-10 16:03:37 · 6973 阅读 · 0 评论 -
filter、map、reduce、lambda
Python内置了一些非常有趣但非常有用的函数,充分体现了Python的语言魅力!filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回:>>> def f(x): return x % 2 != 0 and转载 2013-12-27 10:49:07 · 526 阅读 · 0 评论 -
python笔记
为什么会报错“UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)”?本文就来研究一下这个问题。字符串在Python内部的表示是unicode 编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(d原创 2013-10-30 14:38:56 · 891 阅读 · 0 评论 -
Python线程池
在多线程程序的构建中容易犯一个常见的错误:根据需要生成任意数目的线程,事实上,大多时候,程序将任务交给固定的,数据相对较少的一群线程(线程池)是较好的架构。该程序主要通过queue.queue来实现线程池。Queue.queue也是线程间通信和同步的最有用最简单的方式。[root@xiaoxiong cb9]# cat cb2_9_4_sol_1.py import threading,原创 2013-10-21 17:13:28 · 811 阅读 · 0 评论 -
python垃圾回收与内存泄露
Python垃圾回收Python垃圾回收的工作原理是:为每个内存对象维护一个引用计数,当对象的引用计数为零时解释器会自动释放内存。在Python中,有2中方式可以触发垃圾回收:一种方式是用户显示调用gc.collect(),另一种方式是每次Python为新对象分配内存时,检查threshold阀值,当对象数量超过threshold设置的阀值就开始进行垃圾回收。但是Python垃圾回收频原创 2013-10-18 18:30:34 · 7194 阅读 · 0 评论 -
python 通过_getframe获取函数名行号和调用函数
程序名为 "1.py" , 代码内容如下:# -*- coding: utf-8 -*- import sysdef abc(): print sys._getframe().f_code.co_filename #当前文件名,可以通过__file__获得 print sys._getframe().f_code.co_name #当前函数名 print原创 2013-10-11 10:59:35 · 3746 阅读 · 0 评论 -
python fnmatch模块使用
1. fnmatch检查文件是否匹配模式:fnmatch.fnmatch(filename,pattern)fnmatch.fnmatch('py','.py') False fnmatch.fnmatch('tlie.py','*.py') True* 表示匹配任何单个或多个字符;? 表示匹配单个字符;[seq] 匹配单个原创 2013-09-27 16:15:36 · 5030 阅读 · 0 评论 -
遍历目录树中所有模式匹配的文件
import os, fnmatchdef all_files(root, patterns='*', single_level=False, yield_folders=False): # Expand patterns from semicolon-separated string to list patterns = patterns.split(';') for原创 2013-09-27 16:31:32 · 692 阅读 · 0 评论 -
traceback 捕获原始异常。
def trace_err(extend_msg=None): msg = '' if extend_msg is None else extend_msg msg += '\n------------------- Local Arguments -------------------\n' for k, v in sys._getframe(1).f_locals.it原创 2013-09-29 16:39:33 · 945 阅读 · 0 评论 -
python库os.walk的用法
python库函数 os.walk 遍历目录下的所有的文件。#-*- encoding:UTF-8 -*-import os#r=input("type a directory name:")for root,dirs,files in os.walk('.'): print 'haha', (root,dirs,files) for f in fi原创 2013-10-18 11:09:40 · 1335 阅读 · 0 评论 -
关于python文件夹操作
总是记不住API。昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧:python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()返回指定目录下的所有文件和目录名:os.listdir()函数用来删除一个文件:os.remove()删除多个目录:转载 2013-10-18 14:22:41 · 826 阅读 · 0 评论 -
python memcache安装与使用
1. 下载memcachedwget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz2. 下载libeventwget http://www.monkey.org/~provos/libevent-1.2.tar.gz3. 先安装libevent$ tar zxvf libevent-1.2.tar.原创 2013-10-24 14:25:18 · 1467 阅读 · 0 评论 -
python装饰器闭包学习
下面通过实例来一步一步解释装饰器的用法:实例1: # -*- coding:utf-8 -*-'''示例1: 最简单的函数,表示调用了两次'''def myfunc(): print("myfunc() called.") myfunc()myfunc()输出:[root@vm3 deco]# python 1.py myfunc() called.原创 2013-10-14 14:03:27 · 714 阅读 · 0 评论 -
Python双头队列实现缓存环
与上一篇文章类似,本文通过从collections.dequeue派生出一个子类,这个类型提供了“双头队列——因而从任意一头添加或删除数据的效率都非常高。[root@xiaoxiong cb6]# cat cb2_6_11_exm_3.py from collections import dequeclass RingBuffer(deque): def __init_原创 2013-10-21 16:44:36 · 1387 阅读 · 0 评论 -
python 操作sqlite用法
sqlite数据库是非常小巧,非常适用于嵌入式软件开发,且占用资源非常低。打开数据库时返回的对象是一个数据库连接对象,它可以有以下操作:commit()--事务提交 rollback()--事务回滚 close()--关闭一个数据库连接 cursor()--创建一个游标游标对象有以下的操作:execute()--执行sql语句 executemany--执原创 2013-10-21 15:55:38 · 1046 阅读 · 0 评论 -
Python类转换实现环形队列
定义一个固定大小的缓存,当它被填满时,新加入的元素自动覆盖第一个元素,这种方法经常用在存储日志和历史信息的程序中。[root@xiaoxiong cb6]# cat cb2_6_11_sol_1.py class RingBuffer(object): """ class that implements a not-yet-full buffer """ def原创 2013-10-21 16:35:04 · 1622 阅读 · 0 评论 -
Redis,memcache,MongoDB区别
1、性能都比较高,性能对我们来说应该都不是瓶颈。总体来讲,TPS方面redis和memcache差不多,要大于mongodb。2、操作的便利性memcache数据结构单一。(key-value)redis丰富一些,数据操作方面,redis更好一些,较少的网络IO次数,同时还提供list,set,hash等数据结构的存储。mongodb支持丰富的数据表达,索引,最类似关系型数原创 2014-01-20 18:57:40 · 587 阅读 · 0 评论