Python常用類庫
阿新 • • 發佈:2021-01-16
技術標籤:Python
1,OS
The os
module provides dozens of functions for interacting with the operating system。
>>> import os
>>> os.getcwd() # 其實看起來和命令列操作很像。
'/home/PycharmProjects/pythonProject1'
>>> os.chdir('/home')
>>> os.getcwd()
'/home'
2,glob
The glob
module provides a function for making file lists from directory wildcard searches:
>>> os.chdir('/home/markey/PycharmProjects/pythonProject1')
>>> import glob
>>> glob.glob('*.py')
['main.py']
3,sys
System-specific parameters and functions。Python直譯器預設提供的一系列基礎功能。例如,輸出錯誤:
>>> import sys >>> sys.stderr.write('Warning!!!') # stdin, stdout, and stderr Warning!!!10
各種數學計算相關功能。
>>> import random # random非常常用,用於隨機操作。 >>> random.choice(['apple', 'pear', 'banana']) # 隨機從list中返回一個元素。 'apple' >>> random.sample(range(100), 10) # 在0~100中,隨機sample 10個整數。 [30, 83, 16, 4, 8, 81, 41, 50, 18, 33] >>> random.random() # 產生一個隨機浮點數。 0.17970987693706186 >>> import statistics >>> data = [2.75, 1.75, 1.25, 0.25, 0.5, 1.25, 3.5] >>> statistics.mean(data) # 平均值 1.6071428571428572 >>> statistics.median(data) # 中位數 1.25
5,訪問網路。Python提供訪問網路的request module但是不太好用。更常用的是第三方類庫requests。
>>> import math
>>> from datetime import date
>>> now = date.today()
>>> now
datetime.date(2021, 1, 15)
>>> birthday = date(1980,8,31)
>>> birthday
datetime.date(1980, 8, 31)
>>> age = now - birthday
>>> age.days/365
40.4027397260274
# string本身就支援簡單的template操作:
>>> name = 'Jim'
>>> f'This is {name}'
'This is Jim'
# template module實現更復雜的操作:
>>> from string import Template
>>> t = Template('Send $$10 to $cause.')
'Notting ham folk send $10 to the ditch fund.'
# 其中$+identifier組成佔位符。$$表示escape。
8,Logging
import logging
logging.debug('Debugging information')
logging.info('Informational message')
logging.warning('Warning:config file %s not found', 'server.conf')
logging.error('Error occurred')
logging.critical('Critical error -- shutting down')
9,json
由於json在資料處理領域非常常用,因此也需要掌握。https://www.runoob.com/python/python-json.html
首先來看一個json例子,需要明白json中的資料也是有資料型別的:
{
"a": 1, -- 這是一個number
"b": "This is a string", -- 這是一個string
"c": [ "Ford", "BMW", "Fiat" ], -- 這是一個array
"d": true -- 這是一個布林值
}
因此,當在python中處理json資料時,需要將json中的資料型別對映到python中的資料型別。json.loads 用於解碼 JSON 資料,並做前述的資料型別轉換。
>>> import json
>>> jsonData = '{"a":1, "b": "This is a string","c": [ "Ford", "BMW", "Fiat" ],"d": true}' # 這裡也可以是一個json檔案。
>>> text = json.loads(jsonData)
>>> type(text)
<class 'dict'> # 由此可見,text是一個dict。
>>> type(text['a'])
<class 'int'>
>>> type(text['b'])
<class 'str'>
>>> type(text['c'])
<class 'str'>
>>> type(text['d'])
<class 'bool'>
而json.dumps 用於將python轉換成json字串,是json.loads的反向操作。
>>> data2 = json.dumps(text)
>>> type(data2)
<class 'str'> # 結果是json對應的字串
>>> data2 = json.dumps({'a': 'Runoob', 'b': 7}, sort_keys=True, indent=4, separators=(',', ': ')) # 也可以使用複雜引數