python个人笔记,纯属方便查询

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
中间退出的时候要保存,然后再次进入的时候还是退出的那个点。
字典 - - - - - 字符串(硬盘) - - - - - - 字典
 
pickle语法dump:把字典写入硬盘文件中:
 
import  pickle
 
account_info  =  {
'a' : 'bbbbbbbbb' ,
'b' : 'ccccccccc'
}
 
f = file ( 'account.pki' , 'wb' )   #定义一个二进制文件,只有字符串才能写入硬盘,
#所以字典要先转换为字符串。
 
pickle.dump(account_info,f)
f.close()
 
 
从硬盘中读取文件变成字典:
import  pickle
pki_file = open ( 'account.pki' , 'rb' )    #以读的方式打开一个文件。
account_list = pickle.load(pki_file)     #把文件序列化,以原来的格式读取
pki_file.close()
 
 
  
如果不写到文件,而是通过socket发送消息:
a =  {
'a' : 'bbbbbbbbb' ,
'b' : 'ccccccccc'
}
b = pickle.dumps(a)
c = pickle.loads(b)
 
 
pickle正则表达式:
import  re
p = re. compile ( 'hello' )   #匹配hello
str_a =  'hello,my nam is darren'
p.match(str_a)
m = p.match(str_a)
m.group()    #看返回值,如果是none则没有匹配
- - - - - - - - - - - - - - - - -
p = re. compile ( 'my' )
p.serach(str_a)      #匹配整行
if  is  not  none: print  "mactched"
- - - - - - - - - - - - - - - -
m = re.search( 'my' ,str_a)   
m.group()
re.search( 'my' ,str_a).group()     #一行搞定
模糊查询:
print  re.findall( '\s+' , str_a)     #\s+匹配空格的
print  re.findall( '\S+' , str_a)     #\S+匹配去掉空格的
print  re.findall( '\d+' , str_a)     #\d+匹配数字的
print  re.findall( '\D+' , str_a)     #\D+匹配去掉数字的
print  re.split( '\d+' , str_a)       #匹配到的做为分隔符
print  re.split( 'b' , str_a)         #以b做为分隔符。
print  re.split( '\\\\' , str_a)      #前面两个为转义,后面两个以\\为分隔符
print  re.split(re.escape( '\\' ), str_a)   #和上面一样
re.sub( '\d+' , '|' ,a)   #把a中的空格替换为|。
re.sub( '\d+' , '|' ,a, 1 )   #把a中的空格替换为|,只匹配一个
.    #匹配任意一个字符
. +   #匹配任意一个或多个字符
  
 
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - python模块 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
如果导入一个目录:例如day3,这时就需要在day3目录下建一个空文件。
cd day3
touch __init__.py
 
 
导入一个交互的配置文件,需要先把交换的脚本改成一个函数:
def  sayhi ():
 
if  dayhi  = = main()
 
 
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - python - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
装饰器:
 
查看sayhi()执行花费的时间:
import  time
def  sayhi():
     start = time.time()
     print  'hi,your sister.....'
     time.sleep( 0.5
     end = time.time()
     print  'this function costs :' ,end  -  start
sayhi()
 
 
如果计算一百个函数花费的时间:
import  time
def  time_counter(func):
     def  wrapper():    
         start = time.time()
         func() 
         end = time.time()
         print  'this function costs :' ,end  -  start
     return  wrapper 
 
@time_counter 
def  sayhi():    
     print  'hi,your sister.....'
@time_counter
def  salary():
     print  'your salary:'
sayhi() 
salary()