04 2016 档案

摘要:高级的 文件、文件夹、压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length])将文件内容拷贝到另一个文件中 shutil.copyfile(src, dst)拷贝文件 shutil.copymode(src, dst)仅拷贝权限。内容、组、用户均不变 shu 阅读全文
posted @ 2016-04-25 23:18 科学小怪癖 阅读(92) 评论(0) 推荐(0)
摘要:import subprocess'''sh-3.2# ls /Users/egon/Desktop |grep txt$mysql.txttt.txt事物.txt'''res1=subprocess.Popen('ls /Users/jieli/Desktop',shell=True,stdout 阅读全文
posted @ 2016-04-25 23:16 科学小怪癖 阅读(77) 评论(0) 推荐(0)
摘要:Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。 摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要dige 阅读全文
posted @ 2016-04-25 23:02 科学小怪癖 阅读(75) 评论(0) 推荐(0)
摘要:在内置数据类型(dict、list、set、tuple)的基础上, collections模块还提供了几个额外的数据类型: Counter、deque、defaultdict、namedtuple和OrderedDict等。 1.namedtuple: 生成可以使用名字来访问元素内容的tuple 2 阅读全文
posted @ 2016-04-25 22:59 科学小怪癖 阅读(105) 评论(0) 推荐(0)
摘要:该模块适用于配置文件的格式与windows ini文件类似, 可以包含一个或多个节(section),每个节可以有多个参数(键=值)。 来看一个好多软件的常见文档格式如下: 创建上面的文件 就是一个 字典的创建 import configparser config = configparser.Co 阅读全文
posted @ 2016-04-25 22:35 科学小怪癖 阅读(86) 评论(0) 推荐(0)
摘要:""" logging配置 """ import os import logging.config # 定义三种日志输出格式 开始 standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(file 阅读全文
posted @ 2016-04-24 23:51 科学小怪癖 阅读(188) 评论(0) 推荐(0)
摘要:import logging formatter=logging.Formatter('%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S %p',) ch=logging.StreamHandler() ch.set... 阅读全文
posted @ 2016-04-24 23:50 科学小怪癖 阅读(76) 评论(0) 推荐(0)
摘要:logger是第一级过滤,然后才能到handler,我们可以给logger和handler同时设置level,但是需要注意的是Logger is also the first to filter the message based on a level — if you set the logger to INFO, and all handlers to DEBUG, you still wo... 阅读全文
posted @ 2016-04-24 23:46 科学小怪癖 阅读(634) 评论(0) 推荐(2)
摘要:import logging formatter=logging.Formatter('%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S %p',) ch=logging.StreamHandler() ch.set... 阅读全文
posted @ 2016-04-24 23:44 科学小怪癖 阅读(139) 评论(0) 推荐(0)
摘要:import logging logger = logging.getLogger() #定义基础对象,使用该对象为 root对象 #logger = logging.getLogger(“root”) fh = logging.FileHandler("test_logging") #创建一个handler,用于写入日志文件 ch = logging.StreamHandler... 阅读全文
posted @ 2016-04-24 23:41 科学小怪癖 阅读(278) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2016-04-24 23:01 科学小怪癖 阅读(66) 评论(0) 推荐(0)
摘要:import logging # 重要的模块 logging.debug("debug infomation") logging.info("info infomation") logging.warning("warning infomation") logging.error("error in 阅读全文
posted @ 2016-04-24 22:22 科学小怪癖 阅读(88) 评论(0) 推荐(0)
摘要:re是一门小型语言 元字符 . 通配符除了\n ^ 以什么开始的匹配 $ 以什么结尾的匹配 * 重复前一个条件,最少0个,[0,∞] + 重复前一个条件,最少1个,[1,∞] ? 重复前面的条件,最少0个,最多1个[0,1] {x} 重复前面的x次,x为数字,{x,y}最少x次,最多y-1次,{x, 阅读全文
posted @ 2016-04-23 23:01 科学小怪癖 阅读(151) 评论(0) 推荐(0)
摘要:import re # | 管道 或者 str = "dsfdsfasd|sada" y = re.findall("sd|d",str) print (y) #['d', 'd', 'sd', 'd'] str = "dsfdsfasd|sada" y = re.findall("sd|ds",s 阅读全文
posted @ 2016-04-23 22:39 科学小怪癖 阅读(535) 评论(0) 推荐(0)
摘要:将没有意义的转变为有意义 (比如元字符) 将有意义的转变没有意义 字符集 [ ] 匹配 就是选择 or 的意思 但是里面的元字符就没有意义了 在字符集里面: 但是 - 比如 0-9 a-z 就到的意思 ^ 标识的事 取反 就是 非 如 ^a-z 标识不匹配a-z的字母 _ 标识 的事 可以匹配下划线 阅读全文
posted @ 2016-04-23 21:27 科学小怪癖 阅读(90) 评论(0) 推荐(0)
摘要:# \b,\B是单词边界,不匹配任何实际字符,所以是看不到的;\B是\b的非(补)。 # # \b:表示字母数字与非字母数字的边界, 非字母数字与字母数字的边界。 # # \B:表示字母数字与(非非)字母数字的边界,非字母数字与非字母数字的边界。 # 但是这里和\s \w \d 不一样 这里需要转义 阅读全文
posted @ 2016-04-23 10:36 科学小怪癖 阅读(112) 评论(0) 推荐(0)
摘要:正则表达式 用于 字符串的 模糊匹配 元字符 点 通配符) ^ 从最开始位置匹配) $ 匹配最后位置) * 匹配 0 到 无穷次) + 匹配 1 到 无穷次) ? 匹配 0 到 1 次) \w 匹配任何字母和、数字 、还有下划线 \W 匹配非字母、数字、下划线 \s 匹配空白 \S 匹配非空白 \d 阅读全文
posted @ 2016-04-23 10:35 科学小怪癖 阅读(143) 评论(0) 推荐(0)
摘要:import re # [] 字符集 匹配[]内的任意字符,没有元字符概念了 str = "ahsyaominggggge123ge567" x = re.findall("m..g[g*z]",str) print(x) #['mingg'] #没有元字符概念了 没有* a = re.findal 阅读全文
posted @ 2016-04-22 23:49 科学小怪癖 阅读(111) 评论(0) 推荐(0)
摘要:import re 正则表达式 就对字符串 的模糊匹配 字符串 find split replace 等都是全匹配 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。 或者说:正则就是用来描述一类事物的规则。 (在Python中)它内嵌在Python中,并通过 阅读全文
posted @ 2016-04-22 21:48 科学小怪癖 阅读(111) 评论(0) 推荐(0)
摘要:xml的格式如下,就是通过<>节点来区别数据结构的: <?xml version="1.0"?> <data> <country name="Liechtenstein"> <rank updated="yes">2</rank> <year>2008</year> <gdppc>141100</g 阅读全文
posted @ 2016-04-22 15:44 科学小怪癖 阅读(90) 评论(0) 推荐(0)
摘要:xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml。现在这种格式的文件比较少了,但是还是存在的所以大家简单了解一下,以备不时之需。 阅读全文
posted @ 2016-04-21 23:03 科学小怪癖 阅读(187) 评论(0) 推荐(0)
摘要:shelve也是python提供给我们的序列化工具,比pickle用起来更简单一些。shelve只提供给我们一个open方法,是用key来访问的,使用起来和字典类似。 阅读全文
posted @ 2016-04-21 22:22 科学小怪癖 阅读(81) 评论(0) 推荐(0)
摘要:用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle, 用于python特有的类型 和 python的数据类型间进行转 pickle模块提供了四个功能:dumps、dump(序列化,存)、loads(反序列化,读)、load (不仅可以序列化字典,列表...可 阅读全文
posted @ 2016-04-21 21:55 科学小怪癖 阅读(248) 评论(0) 推荐(0)
摘要:#json.dumps json.loads import json dict_name={"name":"yaoming","age":18} dict_json_dump = json.dumps(dict_name) with open("text.txt","w+",encoding="utf-8") as f: f.write(dict_json_dump) f.... 阅读全文
posted @ 2016-04-21 21:50 科学小怪癖 阅读(77) 评论(0) 推荐(0)
摘要:什么叫序列化——将原本的字典、列表等内容转换成一个字符串的过程就叫做序列化。 序列化的目的 1、以某种存储形式使自定义对象持久化; 2、将对象从一个地方传递到另一个地方。 3、使程序更具维护性。 Python可序列化的数据类型 | Python | JSON || dict | object || 阅读全文
posted @ 2016-04-19 23:19 科学小怪癖 阅读(176) 评论(0) 推荐(0)
摘要:import sysimport timefor i in range(10): sys.stdout.write("#") time.sleep(i*0.2) sys.stdout.flush() 阅读全文
posted @ 2016-04-19 23:18 科学小怪癖 阅读(104) 评论(0) 推荐(0)
摘要:import sys 这里第一个就是自己的文件名 也就是第一句话 命令行参数List,第一个元素是程序本身路径 阅读全文
posted @ 2016-04-19 22:42 科学小怪癖 阅读(92) 评论(0) 推荐(0)
摘要:#当前执行这个python文件的工作目录相关的工作路径 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd os.curdir 返回当前目录: ('.') os.pardir 获取当前目录的父目录字符串名:('..') #和文件夹相关 os.makedirs('dirname... 阅读全文
posted @ 2016-04-18 23:23 科学小怪癖 阅读(81) 评论(0) 推荐(0)
摘要:iimport sysprint(sys.path) #打印上一级目录 就是包含自己的文件夹 以及环境变量的值#pycharm 可能会加上自己的文件夹 最最外层的项目的目录名 一般建立一个项目 bin。py 放在 bin 文件下 所以 目录结构 modulefile bin bin.py modul 阅读全文
posted @ 2016-04-17 23:44 科学小怪癖 阅读(200) 评论(0) 推荐(0)
摘要:import random print(random.random()) #0-1之间的随机数 print(random.randint(1,6)) #1到6 之间的数 【1,6】 print(random.randrange(1,3)) # 1到 2之间的数 【1,3) print(random.choice([11,22,33,44])) #随机选择一个数 print(rando... 阅读全文
posted @ 2016-04-17 23:37 科学小怪癖 阅读(114) 评论(0) 推荐(0)
摘要:time os import time time.sleep(5) 这就是休息 暂停 5秒的意思 这些都是 解释器内置的 优先级最高 即使你自己创建相同的名字 也会调用 解释器的模块 但是创建 模块 变量 不要和内置函数 内置模块一样了 阅读全文
posted @ 2016-04-16 23:04 科学小怪癖 阅读(109) 评论(0) 推荐(0)
摘要:1 主要用于 调试 代码中来用、if ——name—— 阅读全文
posted @ 2016-04-16 23:02 科学小怪癖 阅读(86) 评论(0) 推荐(0)
摘要:文件结构: modulefile modulepacket __init.py__ cal.py main.py bin.by 阅读全文
posted @ 2016-04-16 22:54 科学小怪癖 阅读(86) 评论(0) 推荐(0)
摘要:def add(x,*args,**kwargs): print (x,type(x)) print (args,type(args)) print (kwargs,type(kwargs)) res = sum((args)) return res if __name__ == "__main__ 阅读全文
posted @ 2016-04-16 22:30 科学小怪癖 阅读(75) 评论(0) 推荐(0)
摘要:1、import 的使用 #模块可以包含可执行的语句和函数的定义,这些语句的目的是初始化模块, 它们只在模块名第一次遇到导入import语句时才执行 (import语句是可以在程序中的任意位置使用的,且针对同一个模块很import多次, 为了防止你重复导入,python的优化手段是:第一次导入后就将 阅读全文
posted @ 2016-04-16 22:20 科学小怪癖 阅读(153) 评论(0) 推荐(0)
摘要:函数 类 模块 就是把具有需要重复使用的功能 抽离出来 避免重复代码 模块简单一点就是一个 py 文件 让不同功能 不同代码 放在不同的模块里面 提供可维护性的代码 便于后面维护使用 引用 就是 import 导入 1导入 就会执行 被导入的文件 2引入需要的变量 变量 从自己找到全局 然后找sys 阅读全文
posted @ 2016-04-16 22:19 科学小怪癖 阅读(96) 评论(0) 推荐(0)
摘要:#定义多个数据库 便于 装饰器来选择 参数 #为能 不改变 函数的内部代码 以及原先装饰器部分代码 #保证内层的函数能用到 参数 进行选择 执行 #要用再在原先的装饰器函数外嵌套一层 将外层参数传到内层 也是闭包的概念 usr_dict ={"name":None,"login_stat":False} def auth(data="filedb"): ... 阅读全文
posted @ 2016-04-16 16:25 科学小怪癖 阅读(93) 评论(0) 推荐(0)
摘要:#test 文件存储的信息,注意行末有逗号 取出来的就是一个元组,没有逗号,取出来就是一个字典{"name":"产品经理","passwrd":123},{"name":"产品经理1","passwrd":123},{"name":"产品经理2","passwrd":123},{"name":"产品经理3","passwrd":123},{"nam 阅读全文
posted @ 2016-04-16 16:05 科学小怪癖 阅读(91) 评论(0) 推荐(0)
摘要:yonghu = [ {"name":"产品经理","passwrd":123}, {"name":"产品经理1","passwrd":123}, {"name":"产品经理2","passwrd":123}, {"name":"产品经理3","passwrd":123}, {"name":"产品经理4"," 阅读全文
posted @ 2016-04-15 23:52 科学小怪癖 阅读(73) 评论(0) 推荐(0)
摘要:#解压序列 a,b,c=(1,2,3) print (a) print (b) print (c) #一一对应 #取值,取开始和最后一个值 li = [1,2,3,4,5,6,7,8,9,0] a,*_,c=li print (a) print (c) a,*_,b,c=li print (a) print (b) print (c) #交换x y 的值 x = 1 y = 2 pri... 阅读全文
posted @ 2016-04-15 22:50 科学小怪癖 阅读(73) 评论(0) 推荐(0)
摘要:上面实现的是装饰器 但是没有返回值 看看传入参数: 阅读全文
posted @ 2016-04-15 22:38 科学小怪癖 阅读(100) 评论(0) 推荐(0)
摘要:高阶函数: 函数接受的参数是一个函数名 函数的返回值是一个函数名 满足这两条的一条都是高阶函数 看看 如何 高阶 嵌套 阅读全文
posted @ 2016-04-15 22:09 科学小怪癖 阅读(81) 评论(0) 推荐(0)
摘要:li = [1,"a"] li.__iter__() 或者 iter(li) 装饰器 本来就是函数 为函数添加附加功能 原则 就是: 不修改 被修饰函数的代码 不修改 被修饰函数的调用方式 遵循开放封闭原则,就是上线的程序不能修改源代码 一个函数一个功能 装饰器的知识储备: 装饰器就是 高阶函数 函 阅读全文
posted @ 2016-04-15 21:30 科学小怪癖 阅读(85) 评论(0) 推荐(0)
摘要:没有修改被修饰函数的源代码, 也没有修改被修饰函数的调用方式, 但是也没有为被修饰函数添加新功能 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能, 装饰器的返回值也是一个函数对象。 它经常用于有切面需求的场景, 比如:插入日志、性能测试、事务处理、缓存 阅读全文
posted @ 2016-04-12 18:17 科学小怪癖 阅读(88) 评论(0) 推荐(0)
摘要:# coding=utf-8 def producer(): ret = [] for i in range(10000): ret.append(i) return ret def cousumer(res): for index, baozi in enumerate(res): print("第%s个人,吃了%s" % (... 阅读全文
posted @ 2016-04-12 14:26 科学小怪癖 阅读(100) 评论(0) 推荐(0)
摘要:生产包子 吃包子 1、原始模型 吃包子: 阅读全文
posted @ 2016-04-02 23:06 科学小怪癖 阅读(88) 评论(0) 推荐(0)
摘要:执行结果为: 阅读全文
posted @ 2016-04-02 15:07 科学小怪癖 阅读(88) 评论(0) 推荐(0)
摘要:2、生成器表达式 li = [i for i in range(10)]print (li)#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]li_iter= (i for i in range(10))print (li_iter)# at 0x0025B470> 1、函数式的生成器 yield#只要函数内部包含有yield关键字,那么函数名()的到的结果就是生成器,并且不会执行函... 阅读全文
posted @ 2016-04-02 14:22 科学小怪癖 阅读(137) 评论(0) 推荐(0)
摘要:什么是生成器? 可以理解为一种数据类型,这种数据类型自动实现了迭代器协议 (其他的数据类型需要调用自己内置的__iter__方法), 所以生成器就是可迭代对象 1、有两种形式 的生成器 一种是函数 一种是表达式 生成器分类及在python中的表现形式:(Python有两种不同的方式提供生成器) 1. 阅读全文
posted @ 2016-04-02 14:14 科学小怪癖 阅读(89) 评论(0) 推荐(0)
摘要:1 #coding=utf-8 2 #生成器 有两种 表现形式,自动实现迭代器 3 #函数 和表达式 4 #函数就有 yield 返回数据, 取代 return 但是 yield 可以多个 5 6 def func(): 7 yield 1 8 yield 2 9 yield 3 10 print(func()) 11 # ... 阅读全文
posted @ 2016-04-01 16:13 科学小怪癖 阅读(115) 评论(0) 推荐(0)
摘要:迭代器 就是让不同的数据类型 具有 迭代功能 如 有序 的 列表 字符串 元组 如 无序 的 文件 字典 集合 变成满足迭代定义的数据类型 能迭代 就是具有 next 方法 只能前进不能后退 1、如何才能将这些数据类型 变成可以迭代的数据类型 就是使用 数据类型的 iter 迭代器方法 生成具有 n 阅读全文
posted @ 2016-04-01 15:59 科学小怪癖 阅读(89) 评论(0) 推荐(0)