
Python學(xué)習(xí)筆記之常用函數(shù)及說明
俗話說“好記性不如爛筆頭”,老祖宗們幾千年總結(jié)出來的東西還是有些道理的,所以,常用的東西也要記下來,不記不知道,一記嚇一跳,乖乖,函數(shù)咋這么多捏.
基本定制型
C.__call__(self, *args) 表示可調(diào)用的實(shí)例
C.__nonzero__(self) 為object 定義False 值;內(nèi)建bool() (從2.2 版開始)
C.__len__(self) “長度”(可用于類);內(nèi)建len()
特殊方法 描述
對象(值)比較c
屬性
定制類/模擬類型
數(shù)值類型:二進(jìn)制操作符
特殊方法 描述
定制類/模擬類型
數(shù)值類型:二進(jìn)制操作符
數(shù)值類型:一元操作符
數(shù)值類型:數(shù)值轉(zhuǎn)換
數(shù)值類型:基本表示法(String)
數(shù)值類型:數(shù)值壓縮
序列類型
[code]
C.__len__(self) 序列中項的數(shù)目
C.__getitem__(self, ind) 得到單個序列元素
C.__setitem__(self, ind,val) 設(shè)置單個序列元素
C.__delitem__(self, ind) 刪除單個序列元素
特殊方法 描述
序列類型
映射類型
記幾個常用的python函數(shù),免得忘
獲得文件擴(kuò)展名函數(shù):返回擴(kuò)展名 和 擴(kuò)名之前的文件名路徑。
os和os.path模塊
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):規(guī)范path字符串形式
os.path.split(name):分割文件名與目錄(事實(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)建單個目錄:os.mkdir("test")
8.刪除多個目錄:os.removedirs(r"c:\python") #刪除所給路徑最后一個目錄下所有空目錄。
9.刪除單個目錄:os.rmdir("test")
10.獲取文件屬性:os.stat(file)
11.修改文件權(quán)限與時間戳: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.獲取文件大小:os.path.getsize(filename)
26.*******:os.ismount("c:\\") --> True
27.搜索目錄下的所有文件:os.path.walk()
[2.shutil]
1.復(fù)制單個文件:shultil.copy(oldfile, newfle)
2.復(fù)制整個目錄樹:shultil.copytree(r".\setup", r".\backup")
3.刪除整個目錄樹:shultil.rmtree(r".\backup")
[3.tempfile]
2.打開臨時文件: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()
查看源代碼打印幫助
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)前時間),根據(jù)指定的格式化字符串輸出
python中時間日期格式化符號:
%y 兩位數(shù)的年份表示(00-99)
%Y 四位數(shù)的年份表示(000-9999)
%m 月份(01-12)
%d 月內(nèi)中的一天(0-31)
%H 24小時制小時數(shù)(0-23)
%I 12小時制小時數(shù)(01-12)
%M 分鐘數(shù)(00=59)
%S 秒(00-59)
%a 本地簡化星期名稱
%A 本地完整星期名稱
%b 本地簡化的月份名稱
%B 本地完整的月份名稱
%c 本地相應(yīng)的日期表示和時間表示
%j 年內(nèi)的一天(001-366)
%p 本地A.M.或P.M.的等價符
%U 一年中的星期數(shù)(00-53)星期天為星期的開始
%w 星期(0-6),星期天為星期的開始
%W 一年中的星期數(shù)(00-53)星期一為星期的開始
%x 本地相應(yīng)的日期表示
%X 本地相應(yīng)的時間表示
%Z 當(dāng)前時區(qū)的名稱
%% %號本身
9.strptime(…)
strptime(string, format) -> struct_time
將時間字符串根據(jù)指定的格式化符轉(zhuǎn)換成數(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)前時間的時間戳
三、疑點(diǎn)
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分別表示的是夏令時和標(biāo)準(zhǔn)時間,它們之間轉(zhuǎn)換為時間戳應(yīng)該相關(guān)3600,但是轉(zhuǎn)換后輸出都為646585714.0
四、小應(yīng)用
1.python獲取當(dāng)前時間
time.time() 獲取當(dāng)前時間戳
time.localtime() 當(dāng)前時間的struct_time形式
time.ctime() 當(dāng)前時間的字符串形式
2.python格式化字符串
格式化成2009-03-20 11:45:39形式
time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())3.將格式字符串轉(zhuǎn)換為時間戳
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)前的時間。
>>> 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)
將一個文件的修改時間轉(zhuǎn)換為日期格式(秒 轉(zhuǎn) 日期)
>>> 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 通用協(xié)調(diào)時間和本地標(biāo)準(zhǔn)時間的差值,以秒為單位。
altzone 通用協(xié)調(diào)時間和本地夏令時的差值
daylight 標(biāo)志,本地時間是否反映夏令時。
tzname (標(biāo)準(zhǔn)時區(qū)名,夏令時時區(qū)名)
函數(shù)
time() 以浮點(diǎn)數(shù)返回紀(jì)元至今以來的秒數(shù)。
clock() 以浮點(diǎn)數(shù)返回CPU開始這個process的時間,(或者至上次調(diào)用這個函數(shù)的時間)
sleep() 延遲一段以浮點(diǎn)數(shù)表示的秒數(shù)。
gmtime() 把以秒表示的時間轉(zhuǎn)換為通用協(xié)調(diào)時序列
localtime() 把秒時轉(zhuǎn)換為本地時序列
asctime() 將時間序列轉(zhuǎn)換成文本描述
ctime() 將秒時轉(zhuǎn)換成文本描述
mktime() 將本地時序列轉(zhuǎn)換成秒時
strftime() 以指定格式將序列時轉(zhuǎn)為文本描述
strptime() 以指定格式從文本描述中解析出時間序列
tzset() 改變當(dāng)?shù)貢r區(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示例
-----------------
演示計算兩個日期相差天數(shù)的計算
>>> import datetime
>>> d1 = datetime.datetime(2005, 2, 16)
>>> d2 = datetime.datetime(2004, 12, 31)
>>> (d1 - d2).days
47
演示計算運(yùn)行時間的例子,以秒進(jìn)行顯示
import datetime
starttime = datetime.datetime.now()
#long running
endtime = datetime.datetime.now()
print (endtime - starttime).seconds
演示計算當(dāng)前時間向后10小時的時間。
>>> d1 = datetime.datetime.now()
>>> d3 = d1 + datetime.timedelta(hours=10)
>>> d3.ctime()
其本上常用的類有:datetime和timedelta兩個。它們之間可以相互加減。每個類都有一些方法和屬性可以查看具體的值
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03