time random sys os模塊
阿新 • • 發佈:2018-04-25
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 本地簡化的月份名稱python中時間日期格式化符號%B 本地完整的月份名稱 %c 本地相應的日期表示和時間表示 %j 年內的一天(001-366) %p 本地A.M.或P.M.的等價符 %U 一年中的星期數(00-53)星期天為星期的開始 %w 星期(0-6),星期天為星期的開始 %W 一年中的星期數(00-53)星期一為星期的開始 %x 本地相應的日期表示 %X 本地相應的時間表示 %Z 當前時區的名稱 %% %號本身
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(r‘D:\python11\day28\userinfo‘)) #查看某個path是否存在(r表示取消path裏所有\的轉譯) print(os.path.isabs(r‘userinfo2‘)) #判斷某個路徑是否是絕對路徑 print(os.path.isfile(r‘userinfo‘)) #判斷是否是文件 print(os.path.isdir(r‘name1‘)) #判斷是否是文件夾 print(os.path.join(‘D:\\python11\\day28‘,‘userinfo‘)) #將多個路徑拼接後返回 print(os.path.getsize(r‘D:\python11‘)) #返回某一個文件的大小(對於文件夾只返回4096)View Code
time random sys os模塊