Python常用函数及说明
根基定制型
C.__init__(self[, arg1, …]) 结构器(带一些可选的参数)
C.__new__(self[, arg1, …]) 结构器(带一些可选的参数);凡是用在配置稳定命据范例的子类。
C.__del__(self) 解构器
C.__str__(self) 可打印的字符输出;内建str()及print 语句
C.__repr__(self) 运行时的字符串输出;内建repr() 和‘‘ 操纵符
C.__unicode__(self)b Unicode 字符串输出;内建unicode()
C.__call__(self, *args) 暗示可挪用的实例
C.__nonzero__(self) 为object 界说False 值;内建bool() (从2.2 版开始)
C.__len__(self) “长度”(可用于类);内建len()
非凡要领 描写
工具(值)较量c
C.__cmp__(self, obj) 工具较量;内建cmp()
C.__lt__(self, obj) and 小于/小于或便是;对应<及<=操纵符
C.__gt__(self, obj) and 大于/大于或便是;对应>及>=操纵符
C.__eq__(self, obj) and 便是/不便是;对应==,!=及<>操纵符
属性
C.__getattr__(self, attr) 获取属性;内建getattr();仅当属性没有找到时挪用
C.__setattr__(self, attr, val) 配置属性
C.__delattr__(self, attr) 删除属性
C.__getattribute__(self, attr) 获取属性;内建getattr();老是被挪用
C.__get__(self, attr) (描写符)获取属性
C.__set__(self, attr, val) (描写符)配置属性
C.__delete__(self, attr) (描写符)删除属性
定制类/模仿范例
数值范例:二进制操纵符
C.__*add__(self, obj) 加;+操纵符
C.__*sub__(self, obj) 减;-操纵符
C.__*mul__(self, obj) 乘;*操纵符
C.__*div__(self, obj) 除;/操纵符
C.__*truediv__(self, obj) True 除;/操纵符
C.__*floordiv__(self, obj) Floor 除;//操纵符
C.__*mod__(self, obj) 取模/取余;%操纵符
C.__*divmod__(self, obj) 除和取模;内建divmod()
C.__*pow__(self, obj[, mod]) 乘幂;内建pow();**操纵符
C.__*lshift__(self, obj) 左移位;<<操纵符
非凡要领 描写
定制类/模仿范例
数值范例:二进制操纵符
C.__*rshift__(self, obj) 右移;>>操纵符
C.__*and__(self, obj) 按位与;&操纵符
C.__*or__(self, obj) 按位或;|操纵符
C.__*xor__(self, obj) 按位与或;^操纵符
数值范例:一元操纵符
C.__neg__(self) 一元负
C.__pos__(self) 一元正
C.__abs__(self) 绝对值;内建abs()
C.__invert__(self) 按位求反;~操纵符
数值范例:数值转换
C.__complex__(self, com) 转为complex(复数);内建complex()
C.__int__(self) 转为int;内建int()
C.__long__(self) 转为long;内建long()
C.__float__(self) 转为float;内建float()
数值范例:根基暗示法(String)
C.__oct__(self) 八进制暗示;内建oct()
C.__hex__(self) 十六进制暗示;内建hex()
数值范例:数值压缩
C.__coerce__(self, num) 压缩成同样的数值范例;内建coerce()
C.__index__(self)g 在有须要时,压缩可选的数值范例为整型(好比:用于切片
索引等等
序列范例
C.__len__(self) 序列中项的数目
C.__getitem__(self, ind) 获得单个序列元素
C.__setitem__(self, ind,val) 配置单个序列元素
C.__delitem__(self, ind) 删除单个序列元素
非凡要领 描写
序列范例
C.__getslice__(self, ind1,ind2) 获得序列片段
C.__setslice__(self, i1, i2,val) 配置序列片段
C.__delslice__(self, ind1,ind2) 删除序列片段
C.__contains__(self, val) f 测试序列成员;内建in 要害字
C.__*add__(self,obj) 串通;+操纵符
C.__*mul__(self,obj) 反复;*操纵符
C.__iter__(self) 建设迭代类;内建iter()
映射范例
C.__len__(self) mapping 中的项的数目
C.__hash__(self) 散列(hash)函数值
C.__getitem__(self,key) 获得给定键(key)的值
C.__setitem__(self,key,val) 配置给定键(key)的值
C.__delitem__(self,key) 删除给定键(key)的值
C.__missing__(self,key) 给定键假如不存在字典中,则提供一个默认值
记几个常用的python函数,省得忘
得到文件扩展名函数:返回扩展名 和 扩名之前的文件名路径。
os.path.splitext('xinjingbao1s.jpg')
('xinjingbao1s', '.jpg')
os和os.path模块
os.listdir(dirname):列出dirname下的目次和文件
os.getcwd():获恰当前事情目次
os.curdir:返回但前目次('.')
os.chdir(dirname):改变事情目次到dirname
os.path.isdir(name):判定name是不是一个目次,name不是目次就返回false
os.path.isfile(name):判定name是不是一个文件,不存在name也返回false
os.path.exists(name):判定是否存在文件或目次name
os.path.getsize(name):得到文件巨细,假如name是目次返回0L
os.path.abspath(name):得到绝对路径
os.path.normpath(path):类型path字符串形式
os.path.split(name):支解文件名与目次(事实上,假如你完全利用目次,它也会将最后一个目次作为文件名而疏散,同时它不会判定文件或目次是否存在)
os.path.splitext():疏散文件名与扩展名
os.path.join(path,name):毗连目次与文件名或目次
os.path.basename(path):返回文件名
os.path.dirname(path):返回文件路径
1.重定名:os.rename(old, new)
2.删除:os.remove(file)
3.列出目次下的文件:os.listdir(path)
4.获取当前事情目次:os.getcwd()
5.改变事情目次:os.chdir(newdir)
6.建设多级目次:os.makedirs(r"c:\python\test")
7.建设单个目次:os.mkdir("test")
8.删除多个目次:os.removedirs(r"c:\python") #删除所给路径最后一个目次下所有空目次。
9.删除单个目次:os.rmdir("test")
10.获取文件属性:os.stat(file)
11.修改文件权限与时间戳:os.chmod(file)
12.执行操纵系统呼吁:os.system("dir")
13.启动新历程:os.exec(), os.execvp()
14.在靠山执行措施:osspawnv()
15.终止当前历程:os.exit(), os._exit()
16.疏散文件名:os.path.split(r"c:\python\hello.py") –> ("c:\\python", "hello.py")
17.疏散扩展名:os.path.splitext(r"c:\python\hello.py") –> ("c:\\python\\hello", ".py")
18.获取路径名:os.path.dirname(r"c:\python\hello.py") –> "c:\\python"
19.获取文件名:os.path.basename(r"r:\python\hello.py") –> "hello.py"
20.判定文件是否存在:os.path.exists(r"c:\python\hello.py") –> True
21.判定是否是绝对路径:os.path.isabs(r".\python\") –> False
22.判定是否是目次:os.path.isdir(r"c:\python") –> True
23.判定是否是文件:os.path.isfile(r"c:\python\hello.py") –> True
24.判定是否是链接文件:os.path.islink(r"c:\python\hello.py") –> False
25.获取文件巨细:os.path.getsize(filename)
26.*******:os.ismount("c:\\") –> True
27.搜索目次下的所有文件:os.path.walk()
[2.shutil]
1.复制单个文件:shultil.copy(oldfile, newfle)
2.复制整个目次树:shultil.copytree(r".\setup", r".\backup")
3.删除整个目次树:shultil.rmtree(r".\backup")
[3.tempfile]
1.建设一个独一的姑且文件:tempfile.mktemp() –> filename
2.打开姑且文件:tempfile.TemporaryFile()
[4.StringIO] #cStringIO是StringIO模块的快速实现模块
1.建设内存文件并写入初始数据:f = StringIO.StringIO("Hello world!")
2.读入内存文件数据:print f.read() #或print f.getvalue() –> Hello world!
3.想内存文件写入数据:f.write("Good day!")
4.封锁内存文件:f.close()
查察源代码打印辅佐1 from time import *
2
3 def secs2str(secs):
4 return strftime("%Y-%m-%d %H:%M:%S",localtime(secs)) 5
5
6 >>> secs2str(1227628280.0)
7 '2008-11-25 23:51:20'
将指定的struct_time(默认为当前时间),按照指定的名目化字符串输出
python中时间日期名目化标记:
%y 两位数的年份暗示(00-99)
%Y 四位数的年份暗示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 当地简化礼拜名称
%A 当地完整礼拜名称
%b 当地简化的月份名称
%B 当地完整的月份名称
%c 当地相应的日期暗示和时间暗示
%j 年内的一天(001-366)
%p 当地A.M.或P.M.的等价符
%U 一年中的礼拜数(00-53)礼拜天为礼拜的开始
%w 礼拜(0-6),礼拜天为礼拜的开始
%W 一年中的礼拜数(00-53)礼拜一为礼拜的开始
%x 当地相应的日期暗示
%X 当地相应的时间暗示
%Z 当前时区的名称
%% %号自己
9.strptime(…)
strptime(string, format) -> struct_time
将时间字符串按照指定的名目化符转换成数组形式的时间
譬喻:
2009-03-20 11:45:39 对应的名目化字符串为:%Y-%m-%d %H:%M:%S
Sat Mar 28 22:24:24 2009 对应的名目化字符串为:%a %b %d %H:%M:%S %Y
10.time(…)
time() -> floating point number
返回当前时间的时间戳
三、疑点
1.夏令时
在struct_time中,夏令时仿佛没有用,譬喻
a = (2009, 6, 28, 23, 8, 34, 5, 87, 1)
b = (2009, 6, 28, 23, 8, 34, 5, 87, 0)
a和b别离暗示的是夏令时和尺度时间,它们之间转换为时间戳应该相关3600,可是转换后输出都为646585714.0
四、小应用
1.python获取当前时间
time.time() 获取当前时间戳
time.localtime() 当前时间的struct_time形式
time.ctime() 当前时间的字符串形式
2.python名目化字符串
名目化成2009-03-20 11:45:39形式
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())名目化成Sat Mar 28 22:24:24 2009形式
time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())3.将名目字符串转换为时间戳
a = "Sat Mar 28 22:24:24 2009"
b = time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))
python time datetime模块详解
Time模块:
--------------------------
time() #以浮点形式返回自Linux新世纪以来颠末的秒数。在linux中,00:00:00 UTC,
January 1, 1970是新**49**的开始。
>>> time.time()
1150269086.6630149
>>> time.ctime(1150269086.6630149)
>>> 'Wed Jun 14 15:11:26 2006'
time.ctime([sec])#把秒数转换成日期名目,假如不带参数,则显示当前的时间。
>>> import time
>>> time.ctime()
>>> 'Wed Jun 14 15:02:50 2006'
>>> time.ctime(1138068452427683)
'Sat Dec 14 04:51:44 1901'
>>> time.ctime(os.path.getmtime('E:\\untitleds.bmp'))
'Fri Sep 19 16:35:37 2008'
>>> time.gmtime(os.path.getmtime('E:\\untitleds.bmp'))
time.struct_time(tm_year=2008, tm_mon=9, tm_mday=19, tm_hour=8, tm_min=35,
tm_sec=37, tm_wday=4, tm_yday=263, tm_isdst=0)
将一个文件的修改时间转换为日期名目(秒 转 日期)
>>> time.strftime('%Y-%m-%d %X',time.localtime(os.path.getmtime('E:\\untitleds.bmp')))
'2008-09-19 16:35:37'
#按时3秒。
>>> time.sleep(3)
TIME模块参考:
---------------------------------
#取一个文件的修改时间
>>> os.path.getmtime('E:\\untitleds.bmp')
1221813337.7626641
变量
timezone 通用协调时间和当地尺度时间的差值,以秒为单元。
altzone 通用协调时间和当地夏令时的差值
daylight 符号,当地时间是否反应夏令时。
tzname (尺度时区名,夏令时时区名)
函数
time() 以浮点数返回纪元至今以来的秒数。
clock() 以浮点数返回CPU开始这个process的时间,(可能至上次挪用这个函数的时间)
sleep() 延迟一段以浮点数暗示的秒数。
gmtime() 把以秒暗示的时间转换为通用协调时序列
localtime() 把秒时转换为当地时序列
asctime() 将时间序列转换成文本描写
ctime() 将秒时转换成文本描写
mktime() 将当地时序列转换成秒时
strftime() 以指命名目将序列时转为文本描写
strptime() 以指命名目从文本描写中理会出时间序列
tzset() 改变内地时区值
DateTime模块
----------------------------
datetime 将日期转化为秒
————————————-
>>> import datetime,time
>>> time.mktime(datetime.datetime(2009,1,1).timetuple())
1230739200.0
>>> cc=[2000,11,3,12,43,33] #Attributes: year, month, day, hour, minute,
second
>>> time.mktime(datetime.datetime(cc[0],cc[1],cc[2],cc[3],cc[4],cc[5]).timetuple())
973226613.0
将秒转换为日期名目
>>> cc = time.localtime(os.path.getmtime('E:\\untitleds.bmp'))
>>> print cc[0:3]
(2008, 9, 19)
DateTime示例
-----------------
演示计较两个日期相差天数的计较
>>> import datetime
>>> d1 = datetime.datetime(2005, 2, 16)
>>> d2 = datetime.datetime(2004, 12, 31)
>>> (d1 – d2).days
47
演示计较运行时间的例子,以秒举办显示
import datetime
starttime = datetime.datetime.now()
#long running
endtime = datetime.datetime.now()
print (endtime – starttime).seconds
演示计较当前时间向后10小时的时间。
>>> d1 = datetime.datetime.now()
>>> d3 = d1 + datetime.timedelta(hours=10)
>>> d3.ctime()
其本上常用的类有:datetime和timedelta两个。它们之间可以彼此加减。每个类都有一些要领和属性可以查察详细的值