一、random模塊(取隨機數模塊)python
# 取隨機小數 : 數學計算dom
import random print(random.random())# 取0-1之間的小數 print(random.uniform(1,2))# 取1-2之間的小數
# 取隨機整數 : 彩票 抽獎函數
import random print(random.randint(1,2)) #頭和尾都取獲得 print(random.randrange(1,2)) # 取不到尾部 print(random.randrange(1,200,2)) # 按步數進行隨機取數
# 從一個列表中隨機抽取值 : 抽獎spa
l = ['a','b',(1,2),123] print(random.choice(l))# 選擇列表中一個進行隨機取值,若是進行屢次會取到重複的值 print(random.sample(l,2))# 選取兩個值,兩個值不會重複
# 打亂一個列表的順序,在原列表的基礎上直接進行修改,節省空間操作系統
l = ['a','b',(1,2),123] random.shuffle(l) print(l)
#驗證碼練習命令行
# 4位數字驗證碼code
import random s = '' for i in range(4): num = random.randint(0,9) s += str(num) print(s)
# 6位數字驗證碼orm
import random def code(n = 6): s = '' for i in range(n): num = random.randint(0,9) s += str(num) return s print(code(6))
# 6位數字+字母驗證碼blog
import random s = '' for i in range(6): num = str(random.randint(0,9)) alpha_upper = chr(random.randint(65,90)) alpha_lower = chr(random.randint(97, 122)) ret = random.choice([num,alpha_upper,alpha_lower]) s += ret print(s)
# 函數版本內存
import random def code(n = 6): s = '' for i in range(n): # 生成隨機的大寫字母,小寫字母,數字各一個 num = str(random.randint(0,9)) alpha_upper = chr(random.randint(65,90)) alpha_lower = chr(random.randint(97,122)) res = random.choice([num,alpha_upper,alpha_lower]) s += res return s print(code(4))
# 進階
import random def code(n = 6,alpha = True): s = '' for i in range(n): num = str(random.randint(0,9)) if alpha: alpha_upper = chr(random.randint(65,90)) alpha_lower = chr(random.randint(97,122)) num = random.choice([num,alpha_upper,alpha_lower]) s += num return s print(code(4,False))
二、time模塊
# time模塊主要是用來和時間打交道的
# 時間戳時間
import time print(time.time())
# 格式化時間
print(time.strftime('%Y-%m-%d %H:%M:%S')) print(time.strftime('%y-%m-%d %H:%M:%S')) print(time.strftime('%c'))
# 結構化時間
struct_time = time.localtime() # 北京時間 print(struct_time) print(struct_time.tm_mon)
# 時間戳換成字符串時間
struct_time = time.localtime(1500000000) ret = time.strftime('%y-%m-%d %H:%M:%S',struct_time) print(ret)
# 字符串時間 轉 時間戳
struct_time = time.strptime('2018-8-8','%Y-%m-%d') res = time.mktime(struct_time) print(res)
1.查看一下2000000000時間戳時間表示的年月日
struct_t = time.localtime(2000000000) print(time.strftime('%Y-%m-%d',struct_t))
2.將2008-8-8轉換成時間戳時間
t = time.strptime('2008-8-8','%Y-%m-%d') print(time.mktime(t))
3.請將當前時間的當前月1號的時間戳時間取出來 - 函數
def get_time(): st = time.localtime() st2 = time.strptime('%s-%s-1'%(st.tm_year,st.tm_mon),'%Y-%m-%d') return time.mktime(st2) print(get_time())
4.計算時間差 - 函數
# 2018-8-19 22:10:8 2018-8-20 11:07:3
# 通過了多少時分秒
str_time1 = '2018-8-19 22:10:8' str_time2 = '2018-8-20 11:07:3' struct_t1 = time.strptime(str_time1,'%Y-%m-%d %H:%M:%S') struct_t2 = time.strptime(str_time2,'%Y-%m-%d %H:%M:%S') timestamp1 = time.mktime(struct_t1) timestamp2 = time.mktime(struct_t2) sub_time = timestamp2 - timestamp1 gm_time = time.gmtime(sub_time) # 1970-1-1 00:00:00 print('過去了%d年%d月%d天%d小時%d分鐘%d秒'%(gm_time.tm_year-1970,gm_time.tm_mon-1, gm_time.tm_mday-1,gm_time.tm_hour, gm_time.tm_min,gm_time.tm_sec))
三、sys模塊
# sys 是和Python解釋器打交道的
print(sys.argv) # argv的第一個參數 是python這個命令後面的值
#兩種不一樣的傳值
import sys usr = input('username') pwd = input('password') usr = sys.argv[1] pwd = sys.argv[2] if usr == 'alex' and pwd == 'alex3714': print('登陸成功') else: exit()
# 是咱們導入到內存中的全部模塊的名字 : 這個模塊的內存地址
import re print(sys.modules['re'].findall('\d','abc126'))
四、os模塊
# os是和操做系統交互的模塊
os.makedirs('dir1/dir2') os.mkdir('dir3') # 只能建立一個 os.mkdir('dir3/dir4') #只有3存在才能建立4 # 只能刪空文件夾 os.rmdir('dir3/dir4') os.removedirs('dir3/dir4') os.removedirs('dir1/dir2')
# exec/eval執行的是字符串數據類型的 python代碼
# os.system和 os.popen是執行字符串數據類型的 命令行代碼
os.'system('dir') # 執行操做系統的命令,沒有返回值,實際的操做/刪除一個文件 建立一個文件夾 exec ret = os.popen('dir) # 是和作查看類的操做 s =ret.read() print(s)
# os.listdir()列舉目錄下的全部文件。返回的是列表類型。
file_lst = os.listdir('D:\sylar\s15') for path in file_lst: print(os.path.join('D:\sylar\s15',path))
#os.path.join()將path進行組合,若其中有絕對路徑,則以前的path將被刪除。
path = os.path.join('D:\\pythontest\\b', 'D:\\pythontest\\a') print(path) #輸出D:\pythontest\a
# os.getcwd() # 查看當前工做目錄
os.chdir('D:\sylar\s15\day18') # 切換當前的工做目錄 ret = os.popen('dir') # 是和作查看類的操做 s =ret.read() print(s)
# os.path.abspath()
#把路徑中不符合規範的/改爲操做系統默認的格式 path = os.path.abspath('D:/sylar/s15/day19/4.os模塊.py') print(path) #可以給能找到的相對路徑改爲絕對路徑 path = os.path.abspath('4.os模塊.py') print(path)
#os.path.split() 就是把一個路徑分紅兩段,第二段是一個文件/文件夾
path= os.path.split('D:/sylar/s15/day19/4.os模塊.py') print(path) #輸出('D:/sylar/s15/day19', '4.os模塊.py') path= os.path.split('D:/sylar/s15/day19') print(path) #輸出('D:/sylar/s15', 'day19') path= os.path.split('D:/sylar/s15/day19/') print(path) #輸出('D:/sylar/s15/day19', '')
#os.path.dirname / os.path.basename
ret1 = os.path.dirname('D:/sylar/s15/day19/4.os模塊.py') ret2 = os.path.basename('D:/sylar/s15/day19/4.os模塊.py') print(ret1) #D:/sylar/s15/day19 print(ret2) #4.os模塊.py
#os.path.exists() 判斷文件/文件夾是否存在
res = os.path.exists(r'D:\sylar\s15\day19\4.os模塊.py') print(res)
#其餘用法
os.path.exists(path) 若是path存在,返回True;若是path不存在,返回False
os.path.isabs(path) 若是path是絕對路徑,返回True
os.path.isfile(path) 若是path是一個存在的文件,返回True。不然返回False
os.path.isdir(path) 若是path是一個存在的目錄,則返回True。不然返回False
os.path.join(path1[, path2[, ...]]) 將多個路徑組合後返回,第一個絕對路徑以前的參數將被忽略
os.path.getatime(path) 返回path所指向的文件或者目錄的最後訪問時間
os.path.getmtime(path) 返回path所指向的文件或者目錄的最後修改時間
os.path.getsize(path) 返回path的大小