1. 程式人生 > >time random sys os模塊

time random sys os模塊

spa getattr os.path -- 2個 交互 join pri mtime

一:time模塊

1,記錄時間有三種格式

技術分享圖片
import time
# 時間戳時間
print(time.time())   # 時間戳時間   # 計算時間差  精準的運算
#格式化時間
print(time.strftime(%Y-%m-%d %H:%M:%S))# 字符串格式化時間   # 記錄下來給人看
print(time.strftime(%y-%m-%d))# 字符串格式化時間
print(time.strftime(%x %X))# 字符串格式化時間
print(time.strftime(%c))# 字符串格式化時間
#結構化時間
print(time.localtime())#
本地結構化時間 # 對應項的簡單計算 print(time.gmtime()) # 英國的結構化時間
三種時間顯示 技術分享圖片
%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中時間日期格式化符號 技術分享圖片
import time
def cal_time(fmt_time,fmt):
    now = time.time()
    time_before = time.mktime(time.strptime(fmt_time,fmt))
    sub_time 
= now - time_before struct_time = time.gmtime(sub_time) return 過去了%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) ret = cal_time(2018-4-23 10:30:20,%Y-%m-%d %H:%M:%S) #過去了0年0月2天0小時38分鐘35秒 print(ret)
計算時間相差

2,幾種時間格式的相互轉換

技術分享圖片

技術分享圖片
p = time.strptime(2015-8-8,%Y-%m-%d) #格式化時間---->結構化時間
print(p)
print(time.mktime(p))  #結構化時間----->時間戳時間
print(time.time()-time.mktime(p))
時間格式的轉換

二:random模塊

技術分享圖片
>>> import random
#隨機小數
>>> random.random()      # 大於0且小於1之間的小數
0.7664338663654585
>>> random.uniform(1,3) #大於1小於3的小數
1.6270147180533838
#恒富:發紅包

#隨機整數
>>> random.randint(1,5)  # 大於等於1且小於等於5之間的整數
>>> random.randrange(1,10,2) # 大於等於1且小於10之間的奇數


#隨機選擇一個返回
>>> random.choice([1,23,[4,5]])  # #1或者23或者[4,5]
#隨機選擇多個返回,返回的個數為函數的第二個參數
>>> random.sample([1,23,[4,5]],2) # #列表元素任意2個組合
[[4, 5], 23]


#打亂列表順序
>>> item=[1,3,5,7,9]
>>> random.shuffle(item) # 打亂次序
>>> item
[5, 1, 3, 7, 9]
>>> random.shuffle(item)
>>> item
[5, 9, 7, 1, 3]
View Code 技術分享圖片
#生成6位數字驗證碼 數字可以重復
import random
def id_code(num):
    ret = ‘‘
    for i in range(num):
        n = random.randint(0,9)
        ret += str(n)
    return ret
print(id_code(6))

# num 大寫字母 小寫字母在每一位被取到的概率相同
def id_code(num):
    ret = ‘‘
    for i in range(num):
        number = str(random.randint(0,9))
        alph_num = random.randint(97,122)   # A65 a97 +25
        alph_num2 = random.randint(65,90)   # A65 a97 +25
        alph = chr(alph_num)
        alph2 = chr(alph_num2)
        choice = random.choice([number,alph,alph2])
        ret += choice
    return ret
print(id_code(6))

# num,字母在每一位被取到的概率相同
def id_code(num):  
    ret = ‘‘
    for i in range(num):
        number = str(random.randint(0,9))
        alph_num = random.randint(97,122)   # A65 a97 +25
        alph_num2 = random.randint(65,90)   # A65 a97 +25
        alph = chr(alph_num)
        alph2 = chr(alph_num2)
        choice = random.choice([alph,alph2])
        choice = random.choice([number,choice])
        ret += choice
    return ret
print(id_code(6))
生成隨機驗證碼

三:sys模塊

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

sys.argv           命令行參數List,第一個元素是程序本身路徑,以腳本的形式執行一個文件的時候,可以加一些參數
sys.exit(n)        退出程序,正常退出時exit(0),錯誤退出sys.exit(1)
sys.version        獲取Python解釋程序的版本信息
sys.path           返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變量的值
sys.platform       返回操作系統平臺名稱 
技術分享圖片
import sys
print(sys.argv)   # 列表 列表的第一項是當前文件所在的路徑
if sys.argv[1] == alex and sys.argv[2] == 3714:
    print(登陸成功)
else:
    sys.exit()
View Code 技術分享圖片
import sys
import logging
inp = sys.argv[1] if len(sys.argv)>1 else WARNING
logging.basicConfig(level=getattr(logging,inp))  # DEBUG
num = int(input(>>>))
logging.debug(num)
a = num * 100
logging.debug(a)
b = a - 10
logging.debug(b)
c = b + 5
print(c)
在cmd窗口查看debug信息

四:os 模塊

os模塊是與操作系統交互的一個接口

技術分享圖片
import os
# print(os.getcwd())   # 獲取當前文件所在的路徑
#os.makedirs(‘name1/name2‘)  # 一次創建多級目錄文件夾
#os.mkdir(‘name/11‘)      # 一次創建單級目錄文件夾
#os.rmdir(‘name1/name2‘) #刪除name1中的name2文件夾,前提是name2文件夾為空才能刪除
#os.removedirs(‘name1/name2‘) #刪除name1和name2文件夾,但必須當name2文件夾為空時才能刪除

#print(os.listdir(‘G:\python‘)) #以一個列表的形式打印該目錄下的所有文件夾

#print(os.stat(r‘G:\python\new2.py‘))  #獲取當前目錄下的文件信息(訪問時間,修改時間等)

# path = ‘python%s2.mok.py‘%os.sep  # 輸出操作系統特定的路徑分隔符,win下為"\\",Linux下為"/"
# print(path)

#print(os.environ)  #獲取當前系統的所有環境變量

# path系列
print(os.path.abspath(userinfo))
# 獲取文件的絕對路徑 G:\python\userinfo
print(os.path.dirname(os.path.abspath(userinfo)))
#獲取該文件的上一級目錄  G:\python
print(os.path.split(os.path.abspath(userinfo)))
#將path分割成目錄和文件名,以元組形式返回
print(os.path.exists(rD:\python11\day28\userinfo))
#查看某個path是否存在(r表示取消path裏所有\的轉譯)
print(os.path.isabs(ruserinfo2))
#判斷某個路徑是否是絕對路徑
print(os.path.isfile(ruserinfo))
#判斷是否是文件
print(os.path.isdir(rname1))
#判斷是否是文件夾
print(os.path.join(D:\\python11\\day28,userinfo))
#將多個路徑拼接後返回
print(os.path.getsize(rD:\python11))
#返回某一個文件的大小(對於文件夾只返回4096)
View Code

  

  

time random sys os模塊