python 常用模块

原创 2016年08月29日 12:49:36
UserDict

>>> dict1=UserDict({'a':1,'b':2}).keys()
>>> dict1
['a', 'b']


>>> re.sub(r'(\w+) (\w+)',r'\2 \1','i say, hello world!')
'say i, world hello!'


>>> m
'say i'

>>> m.title()
'Say I'
>>>


http://www.cnblogs.com/qq78292959/archive/2013/04/07/3003607.html

总的感觉,python本身并没有对二进制进行支持,不过提供了一个模块来弥补,就是struct模块。

python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据,这也没关系,因为string是以1个字节为单位的。

 

import struct

a=12.34

#将a变为二进制

bytes=struct.pack('i',a)

 

此时bytes就是一个string字符串,字符串按字节同a的二进制存储内容相同。

再进行反操作

 

现有二进制数据bytes,(其实就是字符串),将它反过来转换成python的数据类型:

a,=struct.unpack('i',bytes)

注意,unpack返回的是tuple

 

所以如果只有一个变量的话:

bytes=struct.pack('i',a)

那么,解码的时候需要这样

a,=struct.unpack('i',bytes) 或者 (a,)=struct.unpack('i',bytes)

如果直接用a=struct.unpack('i',bytes),那么 a=(12.34,) ,是一个tuple而不是原来的浮点数了。

如果是由多个数据构成的,可以这样:

 

a='hello'

b='world!'

c=2

d=45.123

bytes=struct.pack('5s6sif',a,b,c,d)

 

此时的bytes就是二进制形式的数据了,可以直接写入文件比如 binfile.write(bytes)

然后,当我们需要时可以再读出来,bytes=binfile.read()

 

再通过struct.unpack()解码成python变量
a,b,c,d=struct.unpack('5s6sif',bytes)

 

'5s6sif'这个叫做fmt,就是格式化字符串,由数字加字符构成,5s表示占5个字符的字符串,2i,表示2个整数等等,下面是可用的字符及类型,ctype表示可以与python中的类型一一对应。

 

 

Format C Type Python 字节数
x pad byte no value 1
c char string of length 1 1
b signed char integer 1
B unsigned char integer 1
? _Bool bool 1
h short integer 2
H unsigned short integer 2
i int integer 4
I unsigned int integer or long 4
l long integer 4
L unsigned long long 4
q long long long 8
Q unsigned long long long 8
f float float 4
d double float 8
s char[] string 1
p char[] string 1
P void * long

 

 其他语言中,比如C#,我们通常遍历数组是的方法是:

for (int i = 0; i < list.Length; i++)
{
    
//todo with list[i]
}


在Python中,我们习惯这样遍历:

for item in sequence:
   
process(item)


这样遍历取不到item的序号i,所有就有了下面的遍历方法:

for index in range(len(sequence)):
    process(sequence[index])


其实,如果你了解内置的enumerate函数,还可以这样写:

for index, item in enumerate(sequence):
    process(index, item)

 

描述

choice() 方法返回一个列表,元组或字符串的随机项。


 

import random

print "choice([1, 2, 3, 5, 9]) : ", random.choice([1, 2, 3, 5, 9])
print "choice('A String') : ", random.choice('A String')

以上实例运行后输出结果为:




 

python&nbsp;常用模块

UserDict >>> dict1=UserDict({'a':1,'b':2}).keys() >>> dict1 ['a', 'b'] >>> re.sub(r'(\w+) (\w+)...
  • leexurui
  • leexurui
  • 2016年08月29日 12:49
  • 83

【原创】python&nbsp;使用系统模块…

看了development Into python ,用的的import os 这里方便大家理解,直接用 from os import path 当然这个的坏事是不要在自己的代码中再次定义path这个...
  • u012731379
  • u012731379
  • 2017年03月20日 14:38
  • 93

Nginx常用模块

本文介绍了几个Nginx常用模块的使用方法。 ngx_http_ssi_module 官方说明文档: http://nginx.org/en/docs/http/ngx_http_ssi_module...
  • shennongminblog
  • shennongminblog
  • 2017年07月26日 18:17
  • 765

nginx常用模块

rewrite模块 1.url重写由rewrite指令来执行,该指令接受一个模式(正则表达式),后跟一个替换url。 2.rewrite中的匹配使用的正则表达式pcre库 ^   : 匹配开始 ...
  • anderk
  • anderk
  • 2015年12月15日 12:38
  • 576

Python 主要模块和常用方法简览

************************ 作者:D調の學痞 日期:2014-03-26 原文地址:http://blog.csdn.net/hwhjava/article/details...
  • hwhjava
  • hwhjava
  • 2014年03月27日 13:58
  • 17396

Python常用第三方模块

作者:iGuo 链接:https://zhuanlan.zhihu.com/p/21365319 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 一、Python爬...
  • wilimaster
  • wilimaster
  • 2016年09月19日 14:44
  • 672

python常用模块

time模块: ​   在python中,通常有以下几种方式来表示时间:     1、时间戳,如time.time     2、格式化的时间字符串,如'17/01/2017 10:17:00'    ...
  • chengxuyuanyonghu
  • chengxuyuanyonghu
  • 2017年03月30日 18:45
  • 522

python常用50个模块

转载自:http://blog.csdn.net/pfanaya/article/details/7567077 Python具有强大的扩展能力,我列出了50个很棒的Python模块,包含几乎所...
  • memray
  • memray
  • 2013年10月06日 01:17
  • 15824

python常用模块

Python open()函数文件打开、读、写操作详解 python的文件读写和打开操作都有自己特定的函数和方法,操作起来很简单。下面就来简单的了解下python文件的文件基本操作方法有哪些。 ...
  • moonlione
  • moonlione
  • 2016年11月12日 01:33
  • 740

NodeJS 常用模块推荐

cluster&forever cluster & forever 虽然 nodejs 原生已经提供了 cluster 模块,大部分情况下可以满足我们的基本需求,但这两个模块 cluster 和...
  • TianTangYouZui
  • TianTangYouZui
  • 2017年01月22日 17:50
  • 747
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python&nbsp;常用模块
举报原因:
原因补充:

(最多只允许输入30个字)