經常使用模塊一

一.random模塊python

取隨機小數:數學計算shell

1 import random
2 print(random.random())   # 取0-1之間的小數
3 print(random.uniform(1.,2))   #取1-2之間的小數

取隨機整數:彩票  抽獎bash

import random
print(random.randint(1,2))   #[1,2]
print(random.randrange(1,2))    # [1,2)
print(random.randrange(1,10,2))   #大於等於1且小於10之間的奇數

從一個列表中隨機抽取值: 抽獎dom

1 import random
2 l= ["s","b",(1,2),123]
3 print(random.choice(l))
4 print(random.sample(l, 2))

打亂一個列表的順序,在原列表的基礎上直接進行修改,節省空間 :洗牌函數

1 import random
2 l = ["s","b",(1,2),123]
3 random.shuffle(l)
4 print(l)

習題  :驗證碼spa

 1 # 四位驗證碼
 2 import random
 3 s = ""
 4 for i in range(4):
 5     sum = random.randint(0,9)
 6     s += str(sum)
 7 print(s)
 8 # 六位驗證碼
 9 import random
10 s = ""
11 for i in range(6):
12     sum = random.randint(0,9)
13     s = s + str(sum)
14 print(s)
15 # 函數版本
16 import random
17 def code(n=6):
18     s = ""
19     for i in range(n):
20         num = random.randint(0,9)
21         s = s+ str(num)
22     return s
23 print(code(4))
24 print(code())
25 # 6位數字+字母驗證碼
26 import random
27 def code(n = 6):
28     s = ""
29     for i in range(n):
30         num = str(random.randint(0,9))
31         alpha_upper = chr(random.randint(65,90))
32         alpha_lower = chr(random.randint(97,122))
33         ret = random.choice([num,alpha_upper,alpha_lower])
34         s +=ret
35     return s
36 print(code(4))
37 print(code())
38 # 一塊兒的
39 import random
40 def code(n=6,alpha = True):
41     s = ""
42     for i in range(n):
43         sum = str(random.randint(0,9))
44         if alpha:
45             alpha_upper = chr(random.randint(65,90))
46             alpha_lower = chr(random.randint(97,122))
47             sum = random.choice([sum,alpha_upper,alpha_lower])
48         s += sum
49     return s
50 print(code(4,False))
51 print(code())

二.時間模塊命令行

1 #經常使用方法
2 1.time.sleep(secs)
3 (線程)推遲指定的時間運行。單位爲秒。
4 2.time.time()
5 獲取當前時間戳

時間格式:線程

 1.格式化的時間字符串(Format String): ‘1999-12-06’code

 2.結構化時間  元組(struct_time) :struct_time元組共有9個元素共九個元素:(年,月,日,時,分,秒,一年中第幾周,一年中第幾天等)orm

 3.時間戳(timestamp) :一般來講,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。咱們運行「type(time.time())」,返回的是float類型。

索引(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

  小結:時間戳是計算機可以識別的時間;時間字符串是人可以看懂的時間;元組則是用來操做時間的

  幾種格式之間的轉換

 

  時間戳時間

import time
print(time.time())

  格式化時間

import time
print(time.strftime("%Y-%m-%d %H:%M:%S"))
#  2018-0/8-20
print(time.strftime("%y-%m-%d %H:%M:%S"))
#  1/8-08-20
print(time.strftime("%c"))
#  Mon Aug 20 16:59:08 2018

  結構化時間

1 import  time
2 struct_time = time.localtime()
3 print(struct_time)
4 print(struct_time.tm_mon)

  時間戳換成字符串時間

1 import time
2 struct_time = time.localtime(1500000000)
3 print(time.gmtime(1500000000))
4 #  time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=2, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)
5 
6 ret = time.strftime('%y-%m-%d %H:%M:%S',struct_time)
7 print(ret)
8 #  17-07-14 10:40:00

  字符串時間 轉 時間戳

1 import time
2 struct_time = time.strptime('2018-8-8','%Y-%m-%d')
3 print(struct_time)
4 #  time.struct_time(tm_year=2018, tm_mon=8, tm_mday=8, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=220, tm_isdst=-1)
5 res = time.mktime(struct_time)
6 print(res)
7 # 1533657600.0

  習題

 1 # 1.查看一下2000000000時間戳時間表示的年月日
 2 # 時間戳 - 結構化 - 格式化
 3 import  time
 4 struct_t = time.localtime(2000000000)
 5 print(struct_t)
 6 print(time.strftime('%y-%m-%d',struct_t))
 7 
 8 # 2.將2008-8-8轉換成時間戳時間
 9 import  time
10 t = time.strptime('2008-8-8','%Y-%m-%d')
11 print(time.mktime(t))
12 
13 # 3.請將當前時間的當前月1號的時間戳時間取出來 - 函數
14 # 2018-8-1
15 import time
16 def get_time():
17     st = time.localtime()
18     st2 = time.strptime('%s-%s-1'%(st.tm_year,st.tm_mon),'%Y-%m-%d')
19     return time.mktime(st2)
20 print(get_time())
21 
22 # 4.計算時間差 - 函數
23     # 2018-8-19 22:10:8 2018-8-20 11:07:3
24     # 通過了多少時分秒
25 import time
26 str_time1 = '2018-8-19 22:10:8'
27 str_time2 = '2018-8-20 11:07:3'
28 struct_t1 = time.strptime(str_time1,'%Y-%m-%d %H:%M:%S')
29 struct_t2 = time.strptime(str_time2,'%Y-%m-%d %H:%M:%S')
30 timestamp1 = time.mktime(struct_t1)
31 timestamp2 = time.mktime(struct_t2)
32 sub_time = timestamp2 - timestamp1
33 gm_time = time.gmtime(sub_time)
34 # 1970-1-1 00:00:00
35 print('過去了%d年%d月%d天%d小時%d分鐘%d秒'%(gm_time.tm_year-1970,gm_time.tm_mon-1,
36                                  gm_time.tm_mday-1,gm_time.tm_hour,
37                                  gm_time.tm_min,gm_time.tm_sec))

三.sys模塊

sys 是和Python解釋器打交道的

sys.argv    命令行參數List,第一個元素是程序自己路徑
import sys
print(sys.argv)  # argv的第一個參數 是python這個命令後面的值
sys.exit(n)    退出程序,正常退出時exit(0),錯誤退出sys.exit(1)
1 import sys
2 usr = input('username')
3 pwd = input('password')
4 # usr = sys.argv[1]
5 # pwd = sys.argv[2]
6 if usr == 'alex' and pwd == 'alex3714':
7     print('登陸成功')
8 else:
9     exit()
sys.path   返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變量的值
1 import sys
2 sys.path
3 print(sys.path)
1 import sys
2 import re
3 sys.modules
4 print(sys.modules)  # 是咱們導入到內存中的全部模塊的名字 : 這個模塊的內存地址
5 print(sys.modules['re'].findall('\d','abc126'))
6 #   ['1', '2', '6']

四.os模塊

1 os.makedirs('dirname1/dirname2')    可生成多層遞歸目錄
2 os.removedirs('dirname1')    若目錄爲空,則刪除,並遞歸到上一級目錄,如若也爲空,則刪除,依此類推
3 os.mkdir('dirname')    生成單級目錄;至關於shell中mkdir dirname
4 os.rmdir('dirname')    刪除單級空目錄,若目錄不爲空則沒法刪除,報錯;至關於shell中rmdir dirname
5 os.listdir('dirname')    列出指定目錄下的全部文件和子目錄,包括隱藏文件,並以列表方式打印
6 os.remove()              刪除一個文件
7 os.rename("oldname","newname")  重命名文件/目錄
8 os.stat('path/filename')  獲取文件/目錄信息

 

1 os.system("bash command")  運行shell命令,直接顯示
2 os.popen("bash command).read()  運行shell命令,獲取執行結果
3 os.getcwd() 獲取當前工做目錄,即當前python腳本工做的目錄路徑
4 os.chdir("dirname")  改變當前腳本工做目錄;至關於shell下cd
相關文章
相關標籤/搜索