python精簡(jiǎn)筆記(六)——內(nèi)置模塊介紹

Python 內(nèi)置了許多非常有用的模塊丧诺,無(wú)需額外安裝和配置蜕青,即可直接使用。

datetime

datetime是Python處理日期和時(shí)間的標(biāo)準(zhǔn)庫(kù)避乏。

datetime是模塊贯卦,datetime模塊還包含一個(gè)datetime類(lèi)资柔,通過(guò)from datetime import datetime導(dǎo)入的才是datetime這個(gè)類(lèi)。

如果僅導(dǎo)入import datetime撵割,則必須引用全名datetime.datetime贿堰。

獲取當(dāng)前日期和時(shí)間:

>>> from datetime import datetime
>>> now = datetime.now() # 獲取當(dāng)前datetime
>>> print(now)
2015-05-18 16:28:07.198690
>>> print(type(now))
<class 'datetime.datetime'>

指定某個(gè)日期和時(shí)間

dt = datetime(2015, 4, 19, 12, 20) # 用指定日期時(shí)間創(chuàng)建datetime

轉(zhuǎn)換時(shí)間戳

dt.timestamp() # 把datetime轉(zhuǎn)換為timestamp

結(jié)果 1429417200.0
Python的timestamp是一個(gè)浮點(diǎn)數(shù)。如果有小數(shù)位啡彬,小數(shù)位表示毫秒數(shù)羹与。Java/JS 中的結(jié)果是毫秒數(shù)

timestamp轉(zhuǎn)換為datetime

使用datetime提供的fromtimestamp()方法:

>>> from datetime import datetime
>>> t = 1429417200.0
>>> print(datetime.fromtimestamp(t))
2015-04-19 12:20:00

str和datetime轉(zhuǎn)換

轉(zhuǎn)換方法是通過(guò)datetime.strptime()實(shí)現(xiàn),需要一個(gè)日期和時(shí)間的格式化字符串

>>> from datetime import datetime
>>> cday = datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')
>>> print(cday)
2015-06-01 18:19:59

日期格式詳見(jiàn)文檔 文檔

datetime 轉(zhuǎn)換字符串通過(guò)strftime()

>>> from datetime import datetime
>>> now = datetime.now()
>>> print(now.strftime('%a, %b %d %H:%M'))
Mon, May 05 16:28

datetime加減

對(duì)日期和時(shí)間進(jìn)行加減實(shí)際上就是把datetime往后或往前計(jì)算故硅,得到新的datetime。加減可以直接用+-運(yùn)算符纵搁,不過(guò)需要導(dǎo)入timedelta這個(gè)類(lèi):

>>> from datetime import datetime, timedelta
>>> now = datetime.now()
>>> now
datetime.datetime(2015, 5, 18, 16, 57, 3, 540997)
>>> now + timedelta(hours=10)
datetime.datetime(2015, 5, 19, 2, 57, 3, 540997)
>>> now - timedelta(days=1)
datetime.datetime(2015, 5, 17, 16, 57, 3, 540997)
>>> now + timedelta(days=2, hours=12)
datetime.datetime(2015, 5, 21, 4, 57, 3, 540997)

collections

collections是Python內(nèi)建的一個(gè)集合模塊吃衅,提供了許多有用的集合類(lèi)。

namedtuple

namedtuple是一個(gè)函數(shù)腾誉,它用來(lái)創(chuàng)建一個(gè)自定義的tuple對(duì)象徘层,并且規(guī)定了tuple元素的個(gè)數(shù),并可以用屬性而不是索引來(lái)引用tuple的某個(gè)元素利职。

from collections import namedtuple

Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p.x) # 1
print(p.y) # 2

代碼Point屬于tuple類(lèi)型趣效,用namedtuple可以很方便地定義一種數(shù)據(jù)類(lèi)型,它具備tuple的不變性猪贪,又可以根據(jù)屬性來(lái)引用跷敬,使用十分方便。

表示一個(gè)圓

# namedtuple('名稱(chēng)', [屬性list]):
Circle = namedtuple('Circle', ['x', 'y', 'r'])

deque

deque是為了高效實(shí)現(xiàn)插入和刪除操作的雙向列表哮伟,適合用于隊(duì)列和棧:

from collections import deque

q = deque(['a', 'b', 'c'])
q.append('x')
q.appendleft('y')
print(q) # deque(['y', 'a', 'b', 'c', 'x'])

deque除了實(shí)現(xiàn)listappend()pop()外干花,還支持appendleft()popleft(), 增刪元素要比 list

defaultdict

dict時(shí)妄帘,如果引用的Key不存在楞黄,就會(huì)拋出KeyError。如果希望key不存在時(shí)抡驼,返回一個(gè)默認(rèn)值鬼廓,就可以用defaultdict

>>> from collections import defaultdict
>>> dd = defaultdict(lambda: 'N/A')
>>> dd['key1'] = 'abc'
>>> dd['key1'] # key1存在
'abc'
>>> dd['key2'] # key2不存在,返回默認(rèn)值
'N/A'

注意默認(rèn)值是調(diào)用函數(shù)返回的致盟,而函數(shù)在創(chuàng)建defaultdict對(duì)象時(shí)傳入碎税。

OrderedDict

使用dict時(shí),Key是無(wú)序的馏锡。在對(duì)dict做迭代時(shí)雷蹂,我們無(wú)法確定Key的順序。要保持Key的順序杯道,可以用OrderedDict

>>> from collections import OrderedDict
>>> d = dict([('a', 1), ('b', 2), ('c', 3)])
>>> d # dict的Key是無(wú)序的
{'a': 1, 'c': 3, 'b': 2}
>>> od = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
>>> od # OrderedDict的Key是有序的
OrderedDict([('a', 1), ('b', 2), ('c', 3)])

OrderedDict的Key會(huì)按照插入的順序排列匪煌,不是Key本身排序.

Counter

Counter 是一個(gè)簡(jiǎn)單的計(jì)數(shù)器,例如党巾,統(tǒng)計(jì)字符出現(xiàn)的個(gè)數(shù)萎庭,本質(zhì)也是 dict

from collections import Counter

c = Counter()
for ch in 'yulianlin':
    c[ch] = c[ch] + 1

print(c)  # Counter({'l': 2, 'i': 2, 'n': 2, 'y': 1, 'u': 1, 'a': 1})

HTMLParser和urllib

Python提供了HTMLParser來(lái)非常方便地解析HTML

urllib提供了一系列用于操作URL的功能。

建議使用BS4齿拂, 文檔地址
http://beautifulsoup.readthedocs.io/zh_CN/latest/#

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末驳规,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子署海,更是在濱河造成了極大的恐慌吗购,老刑警劉巖医男,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異捻勉,居然都是意外死亡昨登,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)贯底,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)丰辣,“玉大人,你說(shuō)我怎么就攤上這事禽捆◇鲜玻” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵胚想,是天一觀的道長(zhǎng)琐凭。 經(jīng)常有香客問(wèn)我,道長(zhǎng)浊服,這世上最難降的妖魔是什么统屈? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮牙躺,結(jié)果婚禮上愁憔,老公的妹妹穿的比我還像新娘。我一直安慰自己孽拷,他們只是感情好吨掌,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著脓恕,像睡著了一般膜宋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上炼幔,一...
    開(kāi)封第一講書(shū)人閱讀 52,457評(píng)論 1 311
  • 那天秋茫,我揣著相機(jī)與錄音,去河邊找鬼乃秀。 笑死肛著,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的环形。 我是一名探鬼主播策泣,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼抬吟!你這毒婦竟也來(lái)了萨咕?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤火本,失蹤者是張志新(化名)和其女友劉穎危队,沒(méi)想到半個(gè)月后聪建,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茫陆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年金麸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片簿盅。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挥下,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出桨醋,到底是詐尸還是另有隱情棚瘟,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布喜最,位于F島的核電站偎蘸,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏瞬内。R本人自食惡果不足惜迷雪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望虫蝶。 院中可真熱鬧章咧,春花似錦、人聲如沸秉扑。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)舟陆。三九已至,卻和暖如春耻矮,著一層夾襖步出監(jiān)牢的瞬間秦躯,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工裆装, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留踱承,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓哨免,卻偏偏與公主長(zhǎng)得像茎活,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子琢唾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容