Python學(xué)習(xí)筆記之常用函數(shù)及說明
基本定制型
C.__init__(self[, arg1, ...]) 構(gòu)造器(帶一些可選的參數(shù))
C.__new__(self[, arg1, ...]) 構(gòu)造器(帶一些可選的參數(shù));通常用在設(shè)置不變數(shù)據(jù)類型的子類。
C.__del__(self) 解構(gòu)器
C.__str__(self) 可打印的字符輸出;內(nèi)建str()及print 語句
C.__repr__(self) 運(yùn)行時(shí)的字符串輸出;內(nèi)建repr() 和‘‘ 操作符
C.__unicode__(self)b Unicode 字符串輸出;內(nèi)建unicode()
C.__call__(self, *args) 表示可調(diào)用的實(shí)例
C.__nonzero__(self) 為object 定義False 值;內(nèi)建bool() (從2.2 版開始)
C.__len__(self) “長度”(可用于類);內(nèi)建len()
特殊方法 描述
對象(值)比較c
C.__cmp__(self, obj) 對象比較;內(nèi)建cmp()
C.__lt__(self, obj) and 小于/小于或等于;對應(yīng)<及<=操作符
C.__gt__(self, obj) and 大于/大于或等于;對應(yīng)>及>=操作符
C.__eq__(self, obj) and 等于/不等于;對應(yīng)==,!=及<>操作符
屬性
C.__getattr__(self, attr) 獲取屬性;內(nèi)建getattr();僅當(dāng)屬性沒有找到時(shí)調(diào)用
C.__setattr__(self, attr, val) 設(shè)置屬性
C.__delattr__(self, attr) 刪除屬性
C.__getattribute__(self, attr) 獲取屬性;內(nèi)建getattr();總是被調(diào)用
C.__get__(self, attr) (描述符)獲取屬性
C.__set__(self, attr, val) (描述符)設(shè)置屬性
C.__delete__(self, attr) (描述符)刪除屬性
定制類/模擬類型
數(shù)值類型:二進(jìn)制操作符
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) 除和取模;內(nèi)建divmod()
C.__*pow__(self, obj[, mod]) 乘冪;內(nèi)建pow();**操作符
C.__*lshift__(self, obj) 左移位;<<操作符
特殊方法 描述
定制類/模擬類型
數(shù)值類型:二進(jìn)制操作符
C.__*rshift__(self, obj) 右移;>>操作符
C.__*and__(self, obj) 按位與;&操作符
C.__*or__(self, obj) 按位或;|操作符
C.__*xor__(self, obj) 按位與或;^操作符
數(shù)值類型:一元操作符
C.__neg__(self) 一元負(fù)
C.__pos__(self) 一元正
C.__abs__(self) 絕對值;內(nèi)建abs()
C.__invert__(self) 按位求反;~操作符
數(shù)值類型:數(shù)值轉(zhuǎn)換
C.__complex__(self, com) 轉(zhuǎn)為complex(復(fù)數(shù));內(nèi)建complex()
C.__int__(self) 轉(zhuǎn)為int;內(nèi)建int()
C.__long__(self) 轉(zhuǎn)為long;內(nèi)建long()
C.__float__(self) 轉(zhuǎn)為float;內(nèi)建float()
數(shù)值類型:基本表示法(String)
C.__oct__(self) 八進(jìn)制表示;內(nèi)建oct()
C.__hex__(self) 十六進(jìn)制表示;內(nèi)建hex()
數(shù)值類型:數(shù)值壓縮
C.__coerce__(self, num) 壓縮成同樣的數(shù)值類型;內(nèi)建coerce()
C.__index__(self)g 在有必要時(shí),壓縮可選的數(shù)值類型為整型(比如:用于切片
索引等等
序列類型
[code]
C.__len__(self) 序列中項(xiàng)的數(shù)目
C.__getitem__(self, ind) 得到單個(gè)序列元素
C.__setitem__(self, ind,val) 設(shè)置單個(gè)序列元素
C.__delitem__(self, ind) 刪除單個(gè)序列元素
特殊方法 描述
序列類型
C.__getslice__(self, ind1,ind2) 得到序列片斷
C.__setslice__(self, i1, i2,val) 設(shè)置序列片斷
C.__delslice__(self, ind1,ind2) 刪除序列片斷
C.__contains__(self, val) f 測試序列成員;內(nèi)建in 關(guān)鍵字
C.__*add__(self,obj) 串連;+操作符
C.__*mul__(self,obj) 重復(fù);*操作符
C.__iter__(self) 創(chuàng)建迭代類;內(nèi)建iter()
映射類型
C.__len__(self) mapping 中的項(xiàng)的數(shù)目
C.__hash__(self) 散列(hash)函數(shù)值
C.__getitem__(self,key) 得到給定鍵(key)的值
C.__setitem__(self,key,val) 設(shè)置給定鍵(key)的值
C.__delitem__(self,key) 刪除給定鍵(key)的值
C.__missing__(self,key) 給定鍵如果不存在字典中,則提供一個(gè)默認(rèn)值
記幾個(gè)常用的python函數(shù),免得忘
獲得文件擴(kuò)展名函數(shù):返回?cái)U(kuò)展名 和 擴(kuò)名之前的文件名路徑。
os.path.splitext('xinjingbao1s.jpg')
('xinjingbao1s', '.jpg')
os和os.path模塊
os.listdir(dirname):列出dirname下的目錄和文件
os.getcwd():獲得當(dāng)前工作目錄
os.curdir:返回但前目錄('.')
os.chdir(dirname):改變工作目錄到dirname
os.path.isdir(name):判斷name是不是一個(gè)目錄,name不是目錄就返回false
os.path.isfile(name):判斷name是不是一個(gè)文件,不存在name也返回false
os.path.exists(name):判斷是否存在文件或目錄name
os.path.getsize(name):獲得文件大小,如果name是目錄返回0L
os.path.abspath(name):獲得絕對路徑
os.path.normpath(path):規(guī)范path字符串形式
os.path.split(name):分割文件名與目錄(事實(shí)上,如果你完全使用目錄,它也會將最后一個(gè)目錄作為文件名而分離,同時(shí)它不會判斷文件或目錄是否存在)
os.path.splitext():分離文件名與擴(kuò)展名
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.獲取當(dāng)前工作目錄:os.getcwd()
5.改變工作目錄:os.chdir(newdir)
6.創(chuàng)建多級目錄:os.makedirs(r"c:\python\test")
7.創(chuàng)建單個(gè)目錄:os.mkdir("test")
8.刪除多個(gè)目錄:os.removedirs(r"c:\python") #刪除所給路徑最后一個(gè)目錄下所有空目錄。
9.刪除單個(gè)目錄:os.rmdir("test")
10.獲取文件屬性:os.stat(file)
11.修改文件權(quán)限與時(shí)間戳:os.chmod(file)
12.執(zhí)行操作系統(tǒng)命令:os.system("dir")
13.啟動新進(jìn)程:os.exec(), os.execvp()
14.在后臺執(zhí)行程序:osspawnv()
15.終止當(dāng)前進(jìn)程:os.exit(), os._exit()
16.分離文件名:os.path.split(r"c:\python\hello.py") --> ("c:\\python", "hello.py")
17.分離擴(kuò)展名: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.獲取文件大?。簅s.path.getsize(filename)
26.*******:os.ismount("c:\\") --> True
27.搜索目錄下的所有文件:os.path.walk()
[2.shutil]
1.復(fù)制單個(gè)文件:shultil.copy(oldfile, newfle)
2.復(fù)制整個(gè)目錄樹:shultil.copytree(r".\setup", r".\backup")
3.刪除整個(gè)目錄樹:shultil.rmtree(r".\backup")
[3.tempfile]
1.創(chuàng)建一個(gè)唯一的臨時(shí)文件:tempfile.mktemp() --> filename
2.打開臨時(shí)文件:tempfile.TemporaryFile()
[4.StringIO] #cStringIO是StringIO模塊的快速實(shí)現(xiàn)模塊
1.創(chuàng)建內(nèi)存文件并寫入初始數(shù)據(jù):f = StringIO.StringIO("Hello world!")
2.讀入內(nèi)存文件數(shù)據(jù):print f.read() #或print f.getvalue() --> Hello world!
3.想內(nèi)存文件寫入數(shù)據(jù):f.write("Good day!")
4.關(guān)閉內(nèi)存文件:f.close()
查看源代碼打印幫助
from time import *
def secs2str(secs):
return strftime("%Y-%m-%d %H:%M:%S",localtime(secs))
>>> secs2str(1227628280.0)
'2008-11-25 23:51:20'
將指定的struct_time(默認(rèn)為當(dāng)前時(shí)間),根據(jù)指定的格式化字符串輸出
python中時(shí)間日期格式化符號:
%y 兩位數(shù)的年份表示(00-99)
%Y 四位數(shù)的年份表示(000-9999)
%m 月份(01-12)
%d 月內(nèi)中的一天(0-31)
%H 24小時(shí)制小時(shí)數(shù)(0-23)
%I 12小時(shí)制小時(shí)數(shù)(01-12)
%M 分鐘數(shù)(00=59)
%S 秒(00-59)
%a 本地簡化星期名稱
%A 本地完整星期名稱
%b 本地簡化的月份名稱
%B 本地完整的月份名稱
%c 本地相應(yīng)的日期表示和時(shí)間表示
%j 年內(nèi)的一天(001-366)
%p 本地A.M.或P.M.的等價(jià)符
%U 一年中的星期數(shù)(00-53)星期天為星期的開始
%w 星期(0-6),星期天為星期的開始
%W 一年中的星期數(shù)(00-53)星期一為星期的開始
%x 本地相應(yīng)的日期表示
%X 本地相應(yīng)的時(shí)間表示
%Z 當(dāng)前時(shí)區(qū)的名稱
%% %號本身
9.strptime(…)
strptime(string, format) -> struct_time
將時(shí)間字符串根據(jù)指定的格式化符轉(zhuǎn)換成數(shù)組形式的時(shí)間
例如:
2009-03-20 11:45:39 對應(yīng)的格式化字符串為:%Y-%m-%d %H:%M:%S
Sat Mar 28 22:24:24 2009 對應(yīng)的格式化字符串為:%a %b %d %H:%M:%S %Y
10.time(…)
time() -> floating point number
返回當(dāng)前時(shí)間的時(shí)間戳
三、疑點(diǎn)
1.夏令時(shí)
在struct_time中,夏令時(shí)好像沒有用,例如
a = (2009, 6, 28, 23, 8, 34, 5, 87, 1)
b = (2009, 6, 28, 23, 8, 34, 5, 87, 0)
a和b分別表示的是夏令時(shí)和標(biāo)準(zhǔn)時(shí)間,它們之間轉(zhuǎn)換為時(shí)間戳應(yīng)該相關(guān)3600,但是轉(zhuǎn)換后輸出都為646585714.0
四、小應(yīng)用
1.python獲取當(dāng)前時(shí)間
time.time() 獲取當(dāng)前時(shí)間戳
time.localtime() 當(dāng)前時(shí)間的struct_time形式
time.ctime() 當(dāng)前時(shí)間的字符串形式
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.將格式字符串轉(zhuǎn)換為時(shí)間戳
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() #以浮點(diǎn)形式返回自Linux新世紀(jì)以來經(jīng)過的秒數(shù)。在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])#把秒數(shù)轉(zhuǎn)換成日期格式,如果不帶參數(shù),則顯示當(dāng)前的時(shí)間。
>>> 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)
將一個(gè)文件的修改時(shí)間轉(zhuǎn)換為日期格式(秒 轉(zhuǎn) 日期)
>>> time.strftime('%Y-%m-%d %X',time.localtime(os.path.getmtime('E:\\untitleds.bmp')))
'2008-09-19 16:35:37'
#定時(shí)3秒。
>>> time.sleep(3)
TIME模塊參考:
---------------------------------
#取一個(gè)文件的修改時(shí)間
>>> os.path.getmtime('E:\\untitleds.bmp')
1221813337.7626641
變量
timezone 通用協(xié)調(diào)時(shí)間和本地標(biāo)準(zhǔn)時(shí)間的差值,以秒為單位。
altzone 通用協(xié)調(diào)時(shí)間和本地夏令時(shí)的差值
daylight 標(biāo)志,本地時(shí)間是否反映夏令時(shí)。
tzname (標(biāo)準(zhǔn)時(shí)區(qū)名,夏令時(shí)時(shí)區(qū)名)
函數(shù)
time() 以浮點(diǎn)數(shù)返回紀(jì)元至今以來的秒數(shù)。
clock() 以浮點(diǎn)數(shù)返回CPU開始這個(gè)process的時(shí)間,(或者至上次調(diào)用這個(gè)函數(shù)的時(shí)間)
sleep() 延遲一段以浮點(diǎn)數(shù)表示的秒數(shù)。
gmtime() 把以秒表示的時(shí)間轉(zhuǎn)換為通用協(xié)調(diào)時(shí)序列
localtime() 把秒時(shí)轉(zhuǎn)換為本地時(shí)序列
asctime() 將時(shí)間序列轉(zhuǎn)換成文本描述
ctime() 將秒時(shí)轉(zhuǎn)換成文本描述
mktime() 將本地時(shí)序列轉(zhuǎn)換成秒時(shí)
strftime() 以指定格式將序列時(shí)轉(zhuǎn)為文本描述
strptime() 以指定格式從文本描述中解析出時(shí)間序列
tzset() 改變當(dāng)?shù)貢r(shí)區(qū)值
DateTime模塊
----------------------------
datetime 將日期轉(zhuǎn)化為秒
-------------------------------------
>>> 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
將秒轉(zhuǎn)換為日期格式
>>> cc = time.localtime(os.path.getmtime('E:\\untitleds.bmp'))
>>> print cc[0:3]
(2008, 9, 19)
DateTime示例
-----------------
演示計(jì)算兩個(gè)日期相差天數(shù)的計(jì)算
>>> import datetime
>>> d1 = datetime.datetime(2005, 2, 16)
>>> d2 = datetime.datetime(2004, 12, 31)
>>> (d1 - d2).days
47
演示計(jì)算運(yùn)行時(shí)間的例子,以秒進(jìn)行顯示
import datetime
starttime = datetime.datetime.now()
#long running
endtime = datetime.datetime.now()
print (endtime - starttime).seconds
演示計(jì)算當(dāng)前時(shí)間向后10小時(shí)的時(shí)間。
>>> d1 = datetime.datetime.now()
>>> d3 = d1 + datetime.timedelta(hours=10)
>>> d3.ctime()
其本上常用的類有:datetime和timedelta兩個(gè)。它們之間可以相互加減。每個(gè)類都有一些方法和屬性可以查看具體的值
- Python3的urllib.parse常用函數(shù)小結(jié)(urlencode,quote,quote_plus,unquote,unquote_plus等)
- Python time模塊詳解(常用函數(shù)實(shí)例講解,非常好)
- Python pandas常用函數(shù)詳解
- Python OS模塊常用函數(shù)說明
- Python numpy 常用函數(shù)總結(jié)
- Python正則表達(dá)式常用函數(shù)總結(jié)
- Python字符串和文件操作常用函數(shù)分析
- python常用函數(shù)詳解
- Python中functools模塊的常用函數(shù)解析
- python常用函數(shù)與用法示例
相關(guān)文章
Python+matplotlib繪制不同大小和顏色散點(diǎn)圖實(shí)例
這篇文章主要介紹了Python+matplotlib繪制不同大小和顏色散點(diǎn)圖實(shí)例,matplotlib的用法是比較多種多樣的,下面一起看看其中的一個(gè)實(shí)例吧2018-01-01pyhton列表轉(zhuǎn)換為數(shù)組的實(shí)例
下面小編就為大家分享一篇pyhton列表轉(zhuǎn)換為數(shù)組的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04python實(shí)現(xiàn)對一個(gè)完整url進(jìn)行分割的方法
這篇文章主要介紹了python實(shí)現(xiàn)對一個(gè)完整url進(jìn)行分割的方法,涉及Python操作URL的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04python通過getopt模塊如何獲取執(zhí)行的命令參數(shù)詳解
這篇文章主要給大家介紹了關(guān)于python通過getopt模塊如何獲取執(zhí)行的命令參數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12Python OpenCV學(xué)習(xí)之圖形繪制總結(jié)
在圖像的任務(wù)中,不管是圖像檢測還是圖像識別,我們都需要通過繪制圖形和繪制文字對處理的結(jié)果進(jìn)行說明,本篇就詳細(xì)介紹下OpenCV中的圖形的繪制,感興趣的可以了解一下2022-01-01Python如何解決secure_filename對中文不支持問題
最近使用到了secure_filename,然后悲劇的發(fā)現(xiàn)中文居然不展示出來,本文就詳細(xì)的介紹一下解決方法,感興趣的可以了解一下2021-07-07python實(shí)現(xiàn)搜索本地文件信息寫入文件的方法
這篇文章主要介紹了python實(shí)現(xiàn)搜索本地文件信息寫入文件的方法,涉及Python針對文件的遍歷及屬性操作相關(guān)技巧,需要的朋友可以參考下2016-02-02Python+selenium實(shí)現(xiàn)自動循環(huán)扔QQ郵箱漂流瓶
這篇文章主要為大家詳細(xì)介紹了Python+selenium實(shí)現(xiàn)自動循環(huán)扔QQ郵箱漂流瓶,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05