python标准库学习4

简介:
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
>>> os.environ[ "HOME" ]
'C:\\Users\\Administrator'
 
>>> os.getcwd()  #获得当前的目录
'D:\\new'
>>> os.getenv( "QTDIR" )   #获取环境变量的值
'D:\\vs2010-qt-src-4.7.4\\qt-src-4.7.4'
os.putenv(varname, value)   #设置环境变量的值
 
os.mkdir(path[, mode])
>>> os.mkdir( "aa" )
>>> os.rmdir( "aa" )
>>>os.makedirs( "aa\\bb\\cc" ) 多级目录
os.removedirs(path)¶
os.remove( "d:\\new\\hello.txt" )   #删除文件,如果是目录的话,出错
os.rename( "test.txt" , "a.txt"
 
random.randint(a, b)
Return a random integer N such that a < =  N < =  b.
random.choice(seq)
Return a random element  from  the non - empty sequence seq. If seq  is  empty, raises IndexError.
random.random()
Return the  next  random floating point number  in  the  range  [ 0.0 1.0 ).
random.shuffle(x[, random])  随机排序序列
random.uniform(a, b)¶返回a< = N< = b之间的浮点数
random.randrange([start], stop[, step])想当于choice( range (start, stop, step))
>>> random.random()         # Random float x, 0.0 <= x < 1.0
0.37444887175646646
>>> random.uniform( 1 10 )   # Random float x, 1.0 <= x < 10.0
1.1800146073117523
>>> random.randint( 1 10 )   # Integer from 1 to 10, endpoints included
7
>>> random.randrange( 0 101 2 )   # Even integer from 0 to 100
26
>>> random.choice( 'abcdefghij' )   # Choose a random element
'c'
 
>>> items  =  [ 1 2 3 4 5 6 7 ]
>>> random.shuffle(items)
>>> items
[ 7 3 2 5 6 4 1 ]
 
>>> random.sample([ 1 2 3 4 5 ],   3 )   # Choose 3 elements
[ 4 1 5 ]
 
>>> datetime.MAXYEAR
9999
>>> datetime.MINYEAR
1
 
>>> a = datetime.date( 2011 , 2 , 1 )
>>> a.today()
datetime.date( 2011 11 26 )
>>> a.year
2011
>>> a.month
2
>>> a.day
1
 
>>>  import  time
>>>  from  datetime  import  date
>>> today  =  date.today()
>>> today
datetime.date( 2007 12 5 )
>>> my_birthday  =  date(today.year,  6 24 )
>>>  if  my_birthday < today:
...     my_birthday  =  my_birthday.replace(year = today.year  +  1 )
>>> my_birthday
datetime.date( 2008 6 24 )
>>> time_to_birthday  =  abs (my_birthday  -  today)   #计算日期之差
>>> time_to_birthday.days
202
 
>>> datetime.now()    #当前时间
datetime.datetime( 2011 11 26 10 40 10 283000 )
>>> datetime.utcnow()
datetime.datetime( 2011 11 26 2 40 34 809000 )
>>> a = date( 2005 , 7 , 14 )   #日期和时间进行合并
>>> t = time( 12 , 30 , 12 )
>>> datetime.combine(a,t)
datetime.datetime( 2005 7 14 12 30 12 )
>>> dt  =  datetime.strptime( "21/11/06 16:30" "%d/%m/%y %H:%M" )
>>> dt
datetime.datetime( 2006 11 21 16 30 )
 
>>>  from  datetime  import  timedelta, datetime, tzinfo
>>>  class  GMT1(tzinfo):
...      def  __init__( self ):          # DST starts last Sunday in March
...         d  =  datetime(dt.year,  4 1 )    # ends last Sunday in October
...          self .dston  =  -  timedelta(days = d.weekday()  +  1 )
...         d  =  datetime(dt.year,  11 1 )
...          self .dstoff  =  -  timedelta(days = d.weekday()  +  1 )
...      def  utcoffset( self , dt):
...          return  timedelta(hours = 1 +  self .dst(dt)
...      def  dst( self , dt):
...          if  self .dston < =   dt.replace(tzinfo = None ) <  self .dstoff:
...              return  timedelta(hours = 1 )
...          else :
...              return  timedelta( 0 )
...      def  tzname( self ,dt):
...           return  "GMT +1"
...
>>>  class  GMT2(tzinfo):
...      def  __init__( self ):
...         d  =  datetime(dt.year,  4 1 )
...          self .dston  =  -  timedelta(days = d.weekday()  +  1 )
...         d  =  datetime(dt.year,  11 1 )
...          self .dstoff  =  -  timedelta(days = d.weekday()  +  1 )
...      def  utcoffset( self , dt):
...          return  timedelta(hours = 1 +  self .dst(dt)
...      def  dst( self , dt):
...          if  self .dston < =   dt.replace(tzinfo = None ) <  self .dstoff:
...              return  timedelta(hours = 2 )
...          else :
...              return  timedelta( 0 )
...      def  tzname( self ,dt):
...          return  "GMT +2"
...
>>> gmt1  =  GMT1()
>>>  # Daylight Saving Time
>>> dt1  =  datetime( 2006 11 21 16 30 , tzinfo = gmt1)
>>> dt1.dst()
datetime.timedelta( 0 )
>>> dt1.utcoffset()
datetime.timedelta( 0 3600 )
>>> dt2  =  datetime( 2006 6 14 13 0 , tzinfo = gmt1)
>>> dt2.dst()
datetime.timedelta( 0 3600 )
>>> dt2.utcoffset()
datetime.timedelta( 0 7200 )
>>>  # Convert datetime to another time zone
>>> dt3  =  dt2.astimezone(GMT2())
>>> dt3      # doctest: +ELLIPSIS
datetime.datetime( 2006 6 14 14 0 , tzinfo = <GMT2  object  at  0x ...>)
>>> dt2      # doctest: +ELLIPSIS
datetime.datetime( 2006 6 14 13 0 , tzinfo = <GMT1  object  at  0x ...>)
>>> dt2.utctimetuple()  = =  dt3.utctimetuple()
True
 
class  datetime.time(hour[, minute[, second[, microsecond[, tzinfo]]]])
>>> a = time( 10 , 46 , 12 )
>>> a. min
datetime.time( 0 0 )
>>> a. max
datetime.time( 23 59 59 999999 )
>>> a.hour
10
>>> a.minute
46
>>> a.second
12
>>> a.microsecond
0
 
class  collections.Counter([iterable - or - mapping])
A Counter  is  dict  subclass  for  counting hashable objects.
>>>  # Tally occurrences of words in a list
>>> cnt  =  Counter()
>>>  for  word  in  [ 'red' 'blue' 'red' 'green' 'blue' 'blue' ]:
...     cnt[word]  + =  1
>>> cnt
Counter({ 'blue' 3 'red' 2 'green' 1 })
 
>>>  # Find the ten most common words in Hamlet
>>>  import  re
>>> words  =  re.findall( '\w+' open ( 'hamlet.txt' ).read().lower())
>>> Counter(words).most_common( 10 )
[( 'the' 1143 ), ( 'and' 966 ), ( 'to' 762 ), ( 'of' 669 ), ( 'i' 631 ),
  ( 'you' 554 ),  ( 'a' 546 ), ( 'my' 514 ), ( 'hamlet' 471 ), ( 'in' 451 )]
 
>>> c  =  Counter([ 'eggs' 'ham' ])
>>> c[ 'bacon' ]                               # count of a missing element is zero
0
>>> c[ 'sausage' =  0                         # counter entry with a zero count
>>>  del  c[ 'sausage' ]                         # del actually removes the entry
 
>>> c  =  Counter(a = 4 , b = 2 , c = 0 , d = - 2 )
>>>  list (c.elements())
[ 'a' 'a' 'a' 'a' 'b' 'b' ]
 
most_common([n])   #出现次数最多的n个
>>> Counter( 'abracadabra' ).most_common( 3 )
[( 'a' 5 ), ( 'r' 2 ), ( 'b' 2 )]
 
>>> c  =  Counter(a = 4 , b = 2 , c = 0 , d = - 2 )
>>> d  =  Counter(a = 1 , b = 2 , c = 3 , d = 4 )
>>> c.subtract(d)
Counter({ 'a' 3 'b' 0 'c' - 3 'd' - 6 })
 
>>> c  =  Counter(a = 4 , b = 2 , c = 0 , d = - 2 )
>>>  sum (c.values())   # total of all counts
4
>>>  list (c)
[ 'a' 'c' 'b' 'd' ]
>>>  set (c)
set ([ 'a' 'c' 'b' 'd' ])
>>>  dict (c)
{ 'a' 4 'c' 0 'b' 2 'd' - 2 }
>>> c.items()
[( 'a' 4 ), ( 'c' 0 ), ( 'b' 2 ), ( 'd' - 2 )]
>>> c.most_common()[: - 2 : - 1 ]     # c.most_common()[:-n:-1] n least #common elements
 
[( 'd' - 2 )]
>>> c + = Counter()
>>> c
Counter({ 'a' 4 'b' 2 })
>>> c.clear()
>>> c
Counter()
 
>>> c  =  Counter(a = 3 , b = 1 )
>>> d  =  Counter(a = 1 , b = 2 )
>>> c  +  d                        # add two counters together:  c[x] + d[x]
Counter({ 'a' 4 'b' 3 })
>>> c  -  d                        # subtract (keeping only positive counts)
Counter({ 'a' 2 })
>>> c & d                        # intersection:  min(c[x], d[x])
Counter({ 'a' 1 'b' 1 })
>>> c | d                        # union:  max(c[x], d[x])
Counter({ 'a' 3 'b' 2 })
 
>>>  from  collections  import  deque
>>> d  =  deque( 'ghi' )                  # make a new deque with three items
>>>  for  elem  in  d:                    # iterate over the deque's elements
...      print  elem.upper()
G
H
I
 
>>> d.append( 'j' )                     # add a new entry to the right side
>>> d.appendleft( 'f' )                 # add a new entry to the left side
>>> d                                 # show the representation of the deque
deque([ 'f' 'g' 'h' 'i' 'j' ])
 
>>> d.pop()                           # return and remove the rightmost item
'j'
>>> d.popleft()                       # return and remove the leftmost item
'f'
>>>  list (d)                           # list the contents of the deque
[ 'g' 'h' 'i' ]
>>> d[ 0 ]                              # peek at leftmost item
'g'
>>> d[ - 1 ]                             # peek at rightmost item
'i'
 
>>>  list ( reversed (d))                 # list the contents of a deque in reverse
[ 'i' 'h' 'g' ]
>>>  'h'  in  d                          # search the deque
True
>>> d.extend( 'jkl' )                   # add multiple elements at once
>>> d
deque([ 'g' 'h' 'i' 'j' 'k' 'l' ])
>>> d.rotate( 1 )                       # right rotation
>>> d
deque([ 'l' 'g' 'h' 'i' 'j' 'k' ])
>>> d.rotate( - 1 )                      # left rotation
>>> d
deque([ 'g' 'h' 'i' 'j' 'k' 'l' ])
 
>>> deque( reversed (d))                # make a new deque in reverse order
deque([ 'l' 'k' 'j' 'i' 'h' 'g' ])
>>> d.clear()                         # empty the deque
>>> d.pop()                           # cannot pop from an empty deque
Traceback (most recent call last):
   File  "<pyshell#6>" , line  1 in  - toplevel -
     d.pop()
IndexError: pop  from  an empty deque
 
>>> d.extendleft( 'abc' )               # extendleft() reverses the input order
>>> d
deque([ 'c' 'b' 'a' ])
 
def  tail(filename, n = 10 ):
     'Return the last n lines of a file'
     return  deque( open (filename), n)
 
def  moving_average(iterable, n = 3 ):
     # moving_average([40, 30, 50, 46, 39, 44]) --> 40.0 42.0 45.0 43.0
     it  =  iter (iterable)
     =  deque(itertools.islice(it, n - 1 ))
     d.appendleft( 0 )
     =  sum (d)
     for  elem  in  it:
         + =  elem  -  d.popleft()
         d.append(elem)
         yield  /  float (n)
 
def  delete_nth(d, n):
     d.rotate( - n)
     d.popleft()
     d.rotate(n)
 
class  collections.defaultdict([default_factory[, ...]])
>>> s  =  [( 'yellow' 1 ), ( 'blue' 2 ), ( 'yellow' 3 ), ( 'blue' 4 ), ( 'red' 1 )]
>>> d  =  defaultdict( list )
>>>  for  k, v  in  s:
...     d[k].append(v)
...
>>> d.items()
[( 'blue' , [ 2 4 ]), ( 'red' , [ 1 ]), ( 'yellow' , [ 1 3 ])]
 
>>> d  =  {}
>>>  for  k, v  in  s:
...     d.setdefault(k, []).append(v)
...
>>> d.items()
[( 'blue' , [ 2 4 ]), ( 'red' , [ 1 ]), ( 'yellow' , [ 1 3 ])]
 
>>> s  =  'mississippi'
>>> d  =  defaultdict( int )
>>>  for  in  s:
...     d[k]  + =  1
...
>>> d.items()
[( 'i' 4 ), ( 'p' 2 ), ( 's' 4 ), ( 'm' 1 )]
 
>>> s  =  [( 'red' 1 ), ( 'blue' 2 ), ( 'red' 3 ), ( 'blue' 4 ), ( 'red' 1 ), ( 'blue' 4 )]
>>> d  =  defaultdict( set )
>>>  for  k, v  in  s:
...     d[k].add(v)
...
>>> d.items()
[( 'blue' set ([ 2 4 ])), ( 'red' set ([ 1 3 ]))]
 
>>>  def  heapsort(iterable):
...      'Equivalent to sorted(iterable)'
...     h  =  []
...      for  value  in  iterable:
...         heappush(h, value)
...      return  [heappop(h)  for  in  range ( len (h))]
...
>>> heapsort([ 1 3 5 7 9 2 4 6 8 0 ])
[ 0 1 2 3 4 5 6 7 8 9 ]
 
>>> h  =  []
>>> heappush(h, ( 5 'write code' ))
>>> heappush(h, ( 7 'release product' ))
>>> heappush(h, ( 1 'write spec' ))
>>> heappush(h, ( 3 'create tests' ))
>>> heappop(h)
( 1 'write spec' )
 
#coding=utf-8
#堆的实例
 
from  heapq  import  heappush, heappop, heappushpop, heapify, heapreplace, nlargest,\
     nsmallest
 
heap = []
 
heappush(heap, "A" );
heappush(heap, "C" );
heappush(heap, "B" );
 
print  heap
 
heappop(heap)    #弹出堆中最小的元素
print  heap
 
var = heappushpop(heap, "D" )   #返回并弹出堆中最小的元素,并且将D压入堆
print  var
print  heap
 
var = heapreplace(heap, "E" )   #返回并弹出堆中最小的元素,并且将D压入堆,
print  var
print  heap
 
list = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ]
heapify( list );
print  list
 
print  nlargest( 3 , list )    #返回堆中最大的3个
print  nsmallest( 3 , list )   #返回堆中最小的3个
目录
相关文章
|
24天前
|
调度 开发者 Python
Python中的异步编程:理解asyncio库
在Python的世界里,异步编程是一种高效处理I/O密集型任务的方法。本文将深入探讨Python的asyncio库,它是实现异步编程的核心。我们将从asyncio的基本概念出发,逐步解析事件循环、协程、任务和期货的概念,并通过实例展示如何使用asyncio来编写异步代码。不同于传统的同步编程,异步编程能够让程序在等待I/O操作完成时释放资源去处理其他任务,从而提高程序的整体效率和响应速度。
|
27天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
62 0
|
13天前
|
XML 存储 数据库
Python中的xmltodict库
xmltodict是Python中用于处理XML数据的强大库,可将XML数据与Python字典相互转换,适用于Web服务、配置文件读取及数据转换等场景。通过`parse`和`unparse`函数,轻松实现XML与字典间的转换,支持复杂结构和属性处理,并能有效管理错误。此外,还提供了实战案例,展示如何从XML配置文件中读取数据库连接信息并使用。
Python中的xmltodict库
|
20天前
|
数据库 Python
异步编程不再难!Python asyncio库实战,让你的代码流畅如丝!
在编程中,随着应用复杂度的提升,对并发和异步处理的需求日益增长。Python的asyncio库通过async和await关键字,简化了异步编程,使其变得流畅高效。本文将通过实战示例,介绍异步编程的基本概念、如何使用asyncio编写异步代码以及处理多个异步任务的方法,帮助你掌握异步编程技巧,提高代码性能。
53 4
|
20天前
|
API 数据处理 Python
探秘Python并发新世界:asyncio库,让你的代码并发更优雅!
在Python编程中,随着网络应用和数据处理需求的增长,并发编程变得愈发重要。asyncio库作为Python 3.4及以上版本的标准库,以其简洁的API和强大的异步编程能力,成为提升性能和优化资源利用的关键工具。本文介绍了asyncio的基本概念、异步函数的定义与使用、并发控制和资源管理等核心功能,通过具体示例展示了如何高效地编写并发代码。
30 2
|
25天前
|
数据采集 JSON 测试技术
Python爬虫神器requests库的使用
在现代编程中,网络请求是必不可少的部分。本文详细介绍 Python 的 requests 库,一个功能强大且易用的 HTTP 请求库。内容涵盖安装、基本功能(如发送 GET 和 POST 请求、设置请求头、处理响应)、高级功能(如会话管理和文件上传)以及实际应用场景。通过本文,你将全面掌握 requests 库的使用方法。🚀🌟
42 7
|
26天前
|
机器学习/深度学习 数据采集 算法
Python机器学习:Scikit-learn库的高效使用技巧
【10月更文挑战第28天】Scikit-learn 是 Python 中最受欢迎的机器学习库之一,以其简洁的 API、丰富的算法和良好的文档支持而受到开发者喜爱。本文介绍了 Scikit-learn 的高效使用技巧,包括数据预处理(如使用 Pipeline 和 ColumnTransformer)、模型选择与评估(如交叉验证和 GridSearchCV)以及模型持久化(如使用 joblib)。通过这些技巧,你可以在机器学习项目中事半功倍。
38 3
|
28天前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
34 2
|
19天前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南
|
25天前
|
文字识别 自然语言处理 API
Python中的文字识别利器:pytesseract库
`pytesseract` 是一个基于 Google Tesseract-OCR 引擎的 Python 库,能够从图像中提取文字,支持多种语言,易于使用且兼容性强。本文介绍了 `pytesseract` 的安装、基本功能、高级特性和实际应用场景,帮助读者快速掌握 OCR 技术。
42 0