1. 程式人生 > >常用模塊一

常用模塊一

分鐘 gif 一級目錄 aca remove one local 命令行參數 轉換成

random模塊

random():隨機0~1間的小數,隨機選一個返回
技術分享圖片
import random
#隨機小數
print(random.random()) >>> 0.6314339456787584      # 大於0且小於1之間的小數,
View Code
uniform(n,m):n~m之間隨機的小數,隨機選一個返回
技術分享圖片
import random
print(random.uniform(2,8)) >>> 5.872738210315412  # 大於2且小於8之間的小數
View Code
randint(n,m):n~m之間隨機的整數,隨機選一個返回
技術分享圖片
import random
print(random.randint(3,6)) >>> 6    #大於等於3且小於等於6之間的整數
View Code
randrange(n,m,c):n~m之間隔c個數的隨機整數,隨機選一個返回
技術分享圖片
import random
print(random.randrange(1,10,2)) >>> 5 #大於等於1且小於10之間的奇數
View Code
choice(參數):隨機選擇參數中一個返回
技術分享圖片
print(random.choice([1,23,[89,56]])) >>> 23
View Code
sample(組合):隨機選擇多個返回,返回的個數為函數的第二個參數
技術分享圖片
print(random.sample([1,23,[4,5]],3)) >>>[23, [4, 5], 1]# 列表元素任意3個組合
View Code
shushuffle(參數):打亂參數中的次數
技術分享圖片
lst = [23,56,89,2,36,8]
random.shuffle(lst)   # 隨機打亂列表的順序,在原來的列表打亂,不會生成新列表,
print(lst)    >>>[8, 36, 2, 89, 23, 56]
View Code 技術分享圖片
import random

def v_code():

    code = ‘‘
    for i in range(5):

        num=random.randint(0,9)
        alf=chr(random.randint(65,90))
        add=random.choice([num,alf])
        code="".join([code,str(add)])

    return code

print(v_code())

生成驗證碼
練習,生成隨機驗證碼

time模塊

1.1 時間戳

時間戳表示是從倫敦的1970年1月1日00:00:00開始按秒計算的偏移量,是一個float類型的數據

技術分享圖片
import time
print(time.time()) >>> 1534752837.5641727 #此刻我運行的時候的偏移量
print(type(time.time())) >>> <class float>
View Code

1.2 格式化的時間字符串

類似於"1992-12-06"或"1992\12\06"的字符串

技術分享圖片
%y 兩位數的年份表示(00-99%Y 四位數的年份表示(000-9999%m 月份(01-12%d 月內中的一天(0-31%H 24小時制小時數(0-23%I 12小時制小時數(01-12%M 分鐘數(00=59%S 秒(00-59%a 本地簡化星期名稱
%A 本地完整星期名稱
%b 本地簡化的月份名稱
%B 本地完整的月份名稱
%c 本地相應的日期表示和時間表示
%j 年內的一天(001-366%p 本地A.M.或P.M.的等價符
%U 一年中的星期數(00-53)星期天為星期的開始
%w 星期(0-6),星期天為星期的開始
%W 一年中的星期數(00-53)星期一為星期的開始
%x 本地相應的日期表示
%X 本地相應的時間表示
%Z 當前時區的名稱
%% %號本身

python中時間日期格式化符號:
View Code

1.3 元組(struct_time)

共有9個元素(年,月,日,時,分,秒,一年中第幾周,一年中第幾天,是否是夏令時)

索引(Index)屬性(Attribute)值(Values)
0 tm_year(年) 比如2011
1 tm_mon(月) 1 - 12
2 tm_mday(日) 1 - 31
3 tm_hour(時) 0 - 23
4 tm_min(分) 0 - 59
5 tm_sec(秒) 0 - 60
6 tm_wday(weekday) 0 - 6(0表示周一)
7 tm_yday(一年中的第幾天) 1 - 366
8 tm_isdst(是否是夏令時) 默認為0
技術分享圖片
#時間元組:localtime將一個時間戳轉換為當前時區的struct_time
print(time.localtime())
>>>
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20, tm_hour=16, tm_min=49, tm_sec=30, tm_wday=0, tm_yday=232, tm_isdst=0)
View Code

總結:時間戳是計算機能夠識別的時間,給機器看的;時間字符串是給人看的;元組則是用來操作時間的

格式之間的轉換技術分享圖片

import time
#time.gmtime(時間戳)
print(time.gmtime())  #UTC時間,與英國倫敦當地時間一致
>>>
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20, tm_hour=9, tm_min=13, tm_sec=29, tm_wday=0, tm_yday=232, tm_isdst=0)

print(time.localtime()) #當地時間,北京時間與UTC時間相差8(按當地所在的時區比較)小時
>>>
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20, tm_hour=17, tm_min=13, tm_sec=29, tm_wday=0, tm_yday=232, tm_isdst=0


#結構化時間 ==>時間戳
#time.mktime(結構化時間)
time_tuple = time.localtime()
print(time.mktime(time_tuple))
 >>> 1534756657.0
#結構化時間 ==> 字符串時間
print(time.strftime(%Y-%m-%d %X)) #當前格式化時間字符串
#time.strftime(‘%Y-%m-%d‘,time.localtime(具體時間戳))
print(time.strftime(%Y-%m-%d,time.localtime(1600000000)))
# 將時間戳轉換成格式化時間字符串
>>>2020-09-13


#字符串時間 ==> 結構化時間
#time.strptime(時間字符串,字符串對應格式)
>>>time.strptime("2017-03-16","%Y-%m-%d")
time.struct_time(tm_year=2017, tm_mon=3, tm_mday=16, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=75, tm_isdst=-1)
>>>time.strptime("07/24/2017","%m/%d/%Y")
time.struct_time(tm_year=2017, tm_mon=7, tm_mday=24, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=205, tm_isdst=-1)

技術分享圖片

#結構化時間 --> %a %b %d %H:%M:%S %Y串
#time.asctime(結構化時間) 如果不傳參數,直接返回當前時間的格式化串
>>>time.asctime(time.localtime(1500000000))
Fri Jul 14 10:40:00 2017
>>>time.asctime()
Mon Jul 24 15:18:33 2017

#時間戳 --> %a %b %d %H:%M:%S %Y串
#time.ctime(時間戳)  如果不傳參數,直接返回當前時間的格式化串
>>>time.ctime()
Mon Jul 24 15:19:07 2017
>>>time.ctime(1500000000)
Fri Jul 14 10:40:00 2017
技術分享圖片
import time
true_time=time.mktime(time.strptime(2018-01-01 00:00:00,%Y-%m-%d %H:%M:%S))
time_now = time.mktime(time.strptime(2018-08-20 17:30:00,%Y-%m-%d %H:%M:%S))
dif_time = time_now - true_time
struct_time=time.gmtime(dif_time)
print(過去了%d年%d月%d天%d小時%d分鐘%d秒%(struct_time.tm_year-1970,struct_time.tm_mon-1,
                                       struct_time.tm_mday-1,struct_time.tm_hour,
                                       struct_time.tm_min,struct_time.tm_sec))
>>>
過去了0年7月19天17小時30分鐘0秒
練習 計算時間差

sys模塊

sys模塊是與python解釋器交互的一個接口

sys.argv           命令行參數List,第一個元素是程序本身路徑
sys.exit(n)        退出程序,正常退出時exit(0),錯誤退出sys.exit(1)
sys.version       獲取Python解釋程序的版本信息
sys.path           返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變量的值
sys.platform      返回操作系統平臺名稱
技術分享圖片
import sys
try:
    sys.exit(1)
except SystemExit as e:
    print(e)
異常處理和status

os模塊

os.makedirs(‘file_name/file_name1‘):生成多層遞歸目錄,file_name文件夾下有個file_name1

技術分享圖片
import os
os.makedirs(阿裏巴巴/淘寶)
>>>
#生成兩個文件
阿裏巴巴文件夾下有個淘寶文件
View Code

os.removedirs(‘file_name/file_name1‘):刪除,前提目錄得是空的,並遞歸到上一級目錄,如若也為空,則刪除,以此類推

技術分享圖片
os.removedirs(阿裏巴巴/淘寶)
>>>
因為淘寶文件是空的,可以刪除,刪除後,阿裏巴巴也變成了空,所以阿裏巴巴也可以刪除了
View Code

os.mkdir(‘file_name‘):生成單級目錄,相當於shell中的mkdir dirname

技術分享圖片
os.mkdir(file_name)
>>>
生成了一個file_name空文件夾
View Code

os.rmdir(‘file_name‘):刪除單級目錄,前提該目錄為空,否則報錯,相當於shell中的rmdir dirname

技術分享圖片
os.rmdir(file_name)
>>>
刪除了一個名為file_name的空文件夾
View Code

常用模塊一