1. 程式人生 > 實用技巧 >python常用內建模組------(搬運)

python常用內建模組------(搬運)

Python常用內建模組

Python常用內建模組

  • time模組
  • datetime模組
  • sys模組
  • random模組
  • stat模組
  • string模組
  • math模組
  • urllib模組

time模組

有以下幾種方式來表示時間:

  1. 時間戳
  2. 格式化的時間字串(時間物件)
  3. 元組(struct_time)共九個元素,由於python的time模組實現主要呼叫C庫,所以各個平臺可能不同

時間戳(timestamp)的方式:通常來說,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量,我們執行type(time.time()),返回的就是float型別。

元組(tuple_time)方式:struct_time元組共有9個元素,返回struct_time的函式主要有gmtime(),localtime(),strptime(),下面列出這種方式元組中的幾個元素:

索引(Index)屬性Attribute值(Values)
0 tm_year(年) 比如2011
1 tm_mon(月 1 - 12
2 tm_day(日) 1-31
3 tm_hour(時) 0-23
4 tm_min(分) 0-59
5 tm_sec(秒) 0-59
6 tm_wday(星期) 0 - 6(0表示週日)
7 tm_yday(一年中的第幾天) 1-366
8 tm_isdst(是否是夏令時) 預設為1


時間型別的相互轉換

import time

t = time.time()
s = time.ctime(t)       # 時間戳->字串
t1 = time.localtime(t)  # 時間戳->元組
t2 = time.mktime(t1)    # 元組->時間戳
t3 = time.strftime('%Y-%m-%d %H:%M:%S')     # 元組->字串
t4 = time.strptime('2021/1/1', '%Y/%m/%d')  # 字串->元組

datetime模組

datetime.date.today()          本地日期物件,(用str函式可得到它的字面表示(2014-03-24))
datetime.date.isoformat(obj)   當前[年-月-日]字串表示(2014-03-24)
datetime.date.fromtimestamp()  返回一個日期物件,引數是時間戳,返回 [年-月-日]
datetime.date.weekday(obj)     返回一個日期物件的星期數,週一是0
datetime.date.isoweekday(obj)  返回一個日期物件的星期數,週一是1
datetime.date.isocalendar(obj) 把日期物件返回一個帶有年月日的元組

datetime物件:
datetime.datetime.today()                返回一個包含本地時間(含微秒數)的datetime物件 2014-03-24 23:31:50.419000
datetime.datetime.now([tz])              返回指定時區的datetime物件 2014-03-24 23:31:50.419000
datetime.datetime.utcnow()               返回一個零時區的datetime物件
datetime.fromtimestamp(timestamp[,tz])   按時間戳返回一個datetime物件,可指定時區,可用於strftime轉換為日期表示 
datetime.utcfromtimestamp(timestamp)     按時間戳返回一個UTC-datetime物件
datetime.datetime.strptime(‘2014-03-16 12:21:21‘,”%Y-%m-%d %H:%M:%S”)   將字串轉為datetime物件
datetime.datetime.strftime(datetime.datetime.now(), ‘%Y%m%d %H%M%S‘)    將datetime物件轉換為str表示形式
datetime.date.today().timetuple()        轉換為時間戳datetime元組物件,可用於轉換時間戳
datetime.datetime.now().timetuple()
time.mktime(timetupleobj)                將datetime元組物件轉為時間戳
time.time()                              當前時間戳
time.localtime

sys模組

sys.argv                       命令列引數List,第一個元素是程式本身路徑 
sys.path                       返回模組的搜尋路徑,初始化時使用PYTHONPATH環境變數的值 
sys.modules.keys()             返回所有已經匯入的模組列表
sys.modules                    返回系統匯入的模組欄位,key是模組名,value是模組 
sys.exc_info()                 獲取當前正在處理的異常類,exc_type、exc_value、exc_traceback當前處理的異常詳細資訊
sys.exit(n)                    退出程式,正常退出時exit(0)
sys.hexversion                 獲取Python解釋程式的版本值,16進位制格式如:0x020403F0
sys.version                    獲取Python解釋程式的版本資訊
sys.platform                   返回作業系統平臺名稱
sys.stdout                     標準輸出
sys.stdout.write(‘aaa‘)        標準輸出內容
sys.stdout.writelines()        無換行輸出
sys.stdin                      標準輸入
sys.stdin.read()               輸入一行
sys.stderr                     錯誤輸出
sys.exc_clear()                 用來清除當前執行緒所出現的當前的或最近的錯誤資訊 
sys.exec_prefix                 返回平臺獨立的python檔案安裝的位置 
sys.byteorder                   本地位元組規則的指示器,big-endian平臺的值是‘big‘,little-endian平臺的值是‘little‘ 
sys.copyright                   記錄python版權相關的東西 
sys.api_version                 直譯器的C的API版本 
sys.version_info                ‘final‘表示最終,也有‘candidate‘表示候選,表示版本級別,是否有後繼的發行 
sys.getdefaultencoding()        返回當前你所用的預設的字元編碼格式 
sys.getfilesystemencoding()     返回將Unicode檔名轉換成系統檔名的編碼的名字 
sys.builtin_module_names        Python直譯器匯入的內建模組列表 
sys.executable                  Python解釋程式路徑 
sys.getwindowsversion()         獲取Windows的版本 
sys.stdin.readline()            從標準輸入讀一行,sys.stdout.write(“a”) 螢幕輸出a
sys.setdefaultencoding(name)    用來設定當前預設的字元編碼(詳細使用參考文件) 
sys.displayhook(value)          如果value非空,這個函式會把他輸出到sys.stdout(詳細使用參考文件)

random模組

print( random.randint(1,10) )        # 產生 1 到 10 的一個整數型隨機數  
print( random.random() )             # 產生 0 到 1 之間的隨機浮點數
print( random.uniform(1.1,5.4) )     # 產生  1.1 到 5.4 之間的隨機浮點數,區間可以不是整數
print( random.choice('tomorrow') )   # 從序列中隨機選取一個元素
print( random.randrange(1,100,2) )   # 生成從1到100的間隔為2的隨機整數
random.shuffle(x[, random])
#用於將一個列表中的元素打亂,即將列表內的元素隨機排列。
random.sample(sequence, k)
#從指定序列中隨機獲取指定長度的片斷並隨機排列。注意:sample函式不會修改原有序列。
random.seed(a=None, version=2)               初始化隨機數生成器。如果 a 被省略或為 None ,則使用當前系統時間。 如果作業系統提供隨機源,則使用它們而不是系統時間(有關可用性的詳細資訊,請參閱 os.urandom() 函式)。
#如果 a 是 int 型別,則直接使用。<br>對於版本2(預設的),str 、 bytes 或 bytearray 物件轉換為 int 並使用它的所有位。<br>對於版本1(用於從舊版本的Python再現隨機序列),用於 str 和 bytes 的演算法生成更窄的種子範圍。<br>在 3.2 版更改: 已移至版本2方案,該方案使用字串種子中的所有位。
random.getstate()                            返回捕獲生成器當前內部狀態的物件。 這個物件可以傳遞給 setstate() 來恢復狀態。
random.setstate(state)                       state 應該是從之前呼叫 getstate() 獲得的,並且 setstate() 將生成器的內部狀態恢復到 getstate() 被呼叫時的狀態。
random.getrandbits(k)                        返回帶有 k 位隨機的Python整數。 此方法隨 MersenneTwister 生成器一起提供,其他一些生成器也可以將其作為API的可選部分提供。 如果可用,getrandbits() 啟用 randrange() 來處理任意大範圍。
random.randrange(start, stop[, step])        從 range(start, stop, step) 返回一個隨機選擇的元素。 這相當於 choice(range(start, stop, step)) ,但實際上並沒有構建一個 range 物件。
random.randint(a, b)                         返回隨機整數 N 滿足 a <= N <= b。相當於 randrange(a, b+1)。
random.choice(seq)                           從非空序列 seq 返回一個隨機元素。 如果 seq 為空,則引發 IndexError。
random.shuffle(x[, random]) 將序列 x 隨機打亂位置。可選引數 random 是一個0引數函式,在 [0.0, 1.0) 中返回隨機浮點數;預設情況下,這是函式 random() 。
random.sample(population, k)             返回從總體序列或集合中選擇的唯一元素的 k 長度列表。 用於無重複的隨機抽樣。返回包含來自總體的元素的新列表,同時保持原始總體不變。 結果列表按選擇順序排列,因此所有子切片也將是有效的隨機樣本。 這允許抽獎獲獎者(樣本)被劃分為大獎和第二名獲勝者(子切片)。
random.random()                          返回 [0.0, 1.0) 範圍內的下一個隨機浮點數。
random.uniform(a, b)                     返回一個隨機浮點數 N ,當 a <= b 時 a <= N <= b ,當 b < a 時 b <= N <= a 。取決於等式 a + (b-a) * random() 中的浮點舍入,終點 b 可以包括或不包括在該範圍內。
random.triangular(low, high, mode)       返回一個隨機浮點數 N ,使得 low <= N <= high 並在這些邊界之間使用指定的 mode 。 low 和 high 邊界預設為零和一。 mode 引數預設為邊界之間的中點,給出對稱分佈。
random.betavariate(alpha, beta)          Beta 分佈。 引數的條件是 alpha > 0 和 beta > 0。 返回值的範圍介於 0 和 1 之間。
random.expovariate(lambd)                指數分佈。 lambd 是 1.0 除以所需的平均值,它應該是非零的。 (該引數本應命名為 “lambda” ,但這是 Python 中的保留字。)如果 lambd 為正,則返回值的範圍為 0 到正無窮大;如果 lambd 為負,則返回值從負無窮大到 0。
random.gammavariate(alpha, beta)         Gamma 分佈。 ( 不是 gamma 函式! ) 引數的條件是 alpha > 0 和 beta > 0。
random.gauss(mu, sigma)                  高斯分佈。 mu 是平均值,sigma 是標準差。 這比下面定義的 normalvariate() 函式略快。
random.lognormvariate(mu, sigma)         對數正態分佈。 如果你採用這個分佈的自然對數,你將得到一個正態分佈,平均值為 mu 和標準差為 sigma 。 mu 可以是任何值,sigma 必須大於零。
random.normalvariate(mu, sigma)          正態分佈。 mu 是平均值,sigma 是標準差。
random.vonmisesvariate(mu, kappa)        馮·米塞斯(von Mises)分佈。 mu 是平均角度,以弧度表示,介於0和 2*pi 之間,kappa 是濃度引數,必須大於或等於零。 如果 kappa 等於零,則該分佈在 0 到 2*pi 的範圍內減小到均勻的隨機角度。
random.paretovariate(alpha)              帕累託分佈。 alpha 是形狀引數。
random.weibullvariate(alpha, beta)       威布林分佈。 alpha 是比例引數,beta 是形狀引數。

stat模組

描述os.stat()返回的檔案屬性列表中各值的意義

fileStats = os.stat(path)                 獲取到的檔案屬性列表
fileStats[stat.ST_MODE]                   獲取檔案的模式
fileStats[stat.ST_SIZE]                   檔案大小
fileStats[stat.ST_MTIME]                  檔案最後修改時間
fileStats[stat.ST_ATIME]                  檔案最後訪問時間
fileStats[stat.ST_CTIME]                  檔案建立時間
stat.S_ISDIR(fileStats[stat.ST_MODE])     是否目錄
stat.S_ISREG(fileStats[stat.ST_MODE])     是否一般檔案
stat.S_ISLNK(fileStats[stat.ST_MODE])     是否連線檔案
stat.S_ISSOCK(fileStats[stat.ST_MODE])    是否COCK檔案
stat.S_ISFIFO(fileStats[stat.ST_MODE])    是否命名管道
stat.S_ISBLK(fileStats[stat.ST_MODE])     是否塊裝置
stat.S_ISCHR(fileStats[stat.ST_MODE])     是否字元設定

string模組

str.capitalize()                    把字串的第一個字元大寫
str.center(width)                   返回一個原字串居中,並使用空格填充到width長度的新字串
str.ljust(width)                    返回一個原字串左對齊,用空格填充到指定長度的新字串
str.rjust(width)                    返回一個原字串右對齊,用空格填充到指定長度的新字串
str.zfill(width)                    返回字串右對齊,前面用0填充到指定長度的新字串
str.count(str,[beg,len])            返回子字串在原字串出現次數,beg,len是範圍
str.decode(encodeing[,replace])     解碼string,出錯引發ValueError異常
str.encode(encodeing[,replace])     解碼string
str.endswith(substr[,beg,end])      字串是否以substr結束,beg,end是範圍
str.startswith(substr[,beg,end])    字串是否以substr開頭,beg,end是範圍
str.expandtabs(tabsize = 8)         把字串的tab轉為空格,預設為8個
str.find(str,[stat,end])            查詢子字串在字串第一次出現的位置,否則返回-1
str.index(str,[beg,end]) 查詢子字串在指定字元中的位置,不存在報異常
str.isalnum()                       檢查字串是否以字母和數字組成,是返回true否則False
str.isalpha()                       檢查字串是否以純字母組成,是返回true,否則false
str.isdecimal()                     檢查字串是否以純十進位制數字組成,返回布林值
str.isdigit()                       檢查字串是否以純數字組成,返回布林值
str.islower()                       檢查字串是否全是小寫,返回布林值
str.isupper()                       檢查字串是否全是大寫,返回布林值
str.isnumeric()                     檢查字串是否只包含數字字元,返回布林值
str.isspace()                       如果str中只包含空格,則返回true,否則FALSE
str.title()                         返回標題化的字串(所有單詞首字母大寫,其餘小寫)
str.istitle()                       如果字串是標題化的(參見title())則返回true,否則false
str.join(seq)                       以str作為連線符,將一個序列中的元素連線成字串
str.split(str=‘‘,num)               以str作為分隔符,將一個字串分隔成一個序列,num是被分隔的字串
str.splitlines(num)                 以行分隔,返回各行內容作為元素的列表
str.lower()                         將大寫轉為小寫
str.upper()                         轉換字串的小寫為大寫
str.swapcase()                      翻換字串的大小寫
str.lstrip()                        去掉字元左邊的空格和回車換行符
str.rstrip()                        去掉字元右邊的空格和回車換行符
str.strip()                         去掉字元兩邊的空格和回車換行符
str.partition(substr)               從substr出現的第一個位置起,將str分割成一個3元組。
str.replace(str1,str2,num)          查詢str1替換成str2,num是替換次數
str.rfind(str[,beg,end])            從右邊開始查詢子字串
str.rindex(str,[beg,end])           從右邊開始查詢子字串位置 
str.rpartition(str)                 類似partition函式,不過從右邊開始查詢
str.translate(str,del=‘‘)           按str給出的錶轉換string的字元,del是要過慮的字元

math模組

ceil 取大於等於x的最小的整數值,如果x是一個整數,則返回x
copysign 把y的正負號加到x前面,可以使用0
cos 求x的餘弦,x必須是弧度
degrees 把x從弧度轉換成角度
e 表示一個常量
exp 返回math.e,也就是2.71828的x次方
expm1 返回math.e的x(其值為2.71828)次方的值減1
fabs 返回x的絕對值
factorial 取x的階乘的值
floor: 取小於等於x的最大的整數值,如果x是一個整數,則返回自身
fmod 得到x/y的餘數,其值是一個浮點數
frexp 返回一個元組(m,e),其計算方式為:x分別除0.5和1,得到一個值的範圍
fsum 對迭代器裡的每個元素進行求和操作
gcd 返回x和y的最大公約數
hypot 如果x是不是無窮大的數字,則返回True,否則返回False
isfinite 如果x是正無窮大或負無窮大,則返回True,否則返回False
isinf 如果x是正無窮大或負無窮大,則返回True,否則返回False
isnan 如果x不是數字True,否則返回False
ldexp 返回x*(2**i)的值
log 返回x的自然對數,預設以e為基數,base引數給定時,將x的對數返回給定的base,計算式為:log(x)/log(base)
log10 返回x的以10為底的對數
log1p 返回x+1的自然對數(基數為e)的值
log2 返回x的基2對數
modf 返回由x的小數部分和整數部分組成的元組
pi 數字常量,圓周率
pow 返回x的y次方,即x**y
radians 把角度x轉換成弧度
sin 求x(x為弧度)的正弦值
sqrt 求x的平方根
tan 返回x(x為弧度)的正切值
trunc 返回x的整數部分

urllib模組

urllib.quote(string[,safe])             對字串進行編碼。引數safe指定了不需要編碼的字元
urllib.unquote(string)                  對字串進行解碼
urllib.quote_plus(string[,safe])        與urllib.quote類似,但這個方法用‘+‘來替換‘ ‘,而quote用‘%20‘來代替‘ ‘
urllib.unquote_plus(string )            對字串進行解碼
urllib.urlencode(query[,doseq])         將dict或者包含兩個元素的元組列表轉換成url引數。
#例如 字典{‘name‘:‘wklken‘,‘pwd‘:‘123‘}  將被轉換為”name=wklken&pwd=123″
urllib.pathname2url(path)               將本地路徑轉換成url路徑
urllib.url2pathname(path)               將url路徑轉換成本地路徑
urllib.urlretrieve(url[,filename[,reporthook[,data]]]) 下載遠端資料到本地
#filename:指定儲存到本地的路徑(若未指定該,urllib生成一個臨時檔案儲存資料)
#reporthook:回撥函式,當連線上伺服器、以及相應的資料塊傳輸完畢的時候會觸發該回調
#data:指post到伺服器的資料
urllib.urlopen(url[,data[,proxies]])    抓取網頁資訊,[data]post資料到Url,proxies設定的代理


urlrs.readline()                      跟檔案物件使用一樣
urlrs.readlines()                     跟檔案物件使用一樣
urlrs.fileno()                        跟檔案物件使用一樣
urlrs.close()                         跟檔案物件使用一樣
urlrs.info()                          返回一個httplib.HTTPMessage物件,表示遠端伺服器返回的頭資訊
urlrs.getcode()                       獲取請求返回狀態HTTP狀態碼
urlrs.geturl()                        返回請求的URL


原文連結:https://blog.csdn.net/qq_45070541/article/details/101079613#t3