初学python之路-day18
生活随笔
收集整理的這篇文章主要介紹了
初学python之路-day18
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
time時間模塊
時間戳(timestamp):time.time() 延遲線程的運行:time.sleep(secs) (指定時間戳下的)當(dāng)前時區(qū)時間:time.localtime([secs]) (指定時間戳下的)格林威治時間:time.gmtime([secs]) (指定時間元組下的)格式化時間:time.strftime(fmt[,tupletime]) %y 兩位數(shù)的年份表示(00-99) %Y 四位數(shù)的年份表示(000-9999) %m 月份(01-12) %d 月內(nèi)中的一天(0-31) %H 24小時制小時數(shù)(0-23) %I 12小時制小時數(shù)(01-12) %M 分鐘數(shù)(00=59) %S 秒(00-59) %a 本地簡化星期名稱 %A 本地完整星期名稱 %b 本地簡化的月份名稱 %B 本地完整的月份名稱 %c 本地相應(yīng)的日期表示和時間表示 %j 年內(nèi)的一天(001-366) %p 本地A.M.或P.M.的等價符 %U 一年中的星期數(shù)(00-53)星期天為星期的開始 %w 星期(0-6),星期天為星期的開始 %W 一年中的星期數(shù)(00-53)星期一為星期的開始 %x 本地相應(yīng)的日期表示 %X 本地相應(yīng)的時間表示 %Z 當(dāng)前時區(qū)的名稱 %% %號本身 import time # print(time.time()) # 時間戳,用于數(shù)據(jù)的唯一標識 # print('開始睡覺') # # time.sleep(3) # 1557194569.8574438 # # # 自定義睡覺 # old_time = time.time() # while time.time() - old_time <= 3: # pass # # # print(time.time()) # print('醒了')# 當(dāng)前時區(qū)時間 time_obj = time.localtime() print(time_obj) print(time_obj.tm_year)# 格林威治時間 time_obj2 = time.gmtime() print(time_obj2) print(time_obj2.tm_hour) print(time_obj2.tm_wday) # 星期從周一開始計算,周一為數(shù)字0# 1557294569 print(time.localtime(1557094569)) # 將時間戳轉(zhuǎn)化成時間對象 print(time.gmtime(1557094569))# 格式化時間 # (2019, 5, 6, 6, 16, 9, 0, 126, 0) res = time.strftime("%Y-%m-%d %H:%M:%S") print(res) res = time.strftime("%Y-%m-%d %H:%M:%S", (2008, 8, 8, 8, 8, 8, 0, 0, 0)) print(res)datetime模塊
當(dāng)前時間:datetime.datetime.now() 昨天:datetime.datetime.now() + datetime.timedelta(days=-1) 修改時間:datatime_obj.replace([...]) 格式化時間戳:datetime.date.fromtimestamp(timestamp) import datetimeprint(datetime.datetime.year) print(datetime.datetime.day) now_time = datetime.datetime.now() # 當(dāng)前時間 res = str(now_time) print(res, res[:-7])days = datetime.timedelta(days=7) # 7天的時間對象 print(days, type(days))# 免登陸時間運算 | 會員過期時間 time_obj = now_time + days print(time_obj, type(time_obj))new_time_obj = time_obj.replace(year=2000, day=1, second=0) print(new_time_obj)print(datetime.date.fromtimestamp(1557094560)) # 2019-05-06calendar日歷模塊
判斷閏年:calendar.isleap(year) 查看某年某月日歷:calendar.month(year, mouth) 查看某年某月起始星期與當(dāng)月天數(shù):calendar.monthrange(year, mouth) 查看某年某月某日是星期幾:calendar.weekday(year, month, day) import calendar print(calendar.isleap(2200)) print(calendar.month(2019, 5)) print(calendar.monthrange(2019, 5)) print(calendar.weekday(2019, 5, 7))sys系統(tǒng)模塊
命令行參數(shù)List,第一個元素是程序本身路徑:sys.argv 退出程序,正常退出時exit(0):sys.exit(n) 獲取Python解釋程序的版本信息:sys.version 最大int值:sys.maxsize | sys.maxint 環(huán)境變量:sys.path ****** 操作系統(tǒng)平臺名稱:sys.platform import sys # sys.exit(0) # aaa print('哈哈') print(sys.version) print(sys.maxsize) # print(sys.maxint) # py2 = sys.maxsize print(sys.platform) sys.argv import sys print(sys.argv)# 應(yīng)用與自動化腳本 import os.pathdef f1():print('執(zhí)行自動化打印方法')def f2():print('執(zhí)行自動化移動方法')def copy_file(old, new):# print("將%s復(fù)制成%s" % (old, new))new_file = os.path.join(new, 'new.py')with open(old, 'rb') as rf, open(new_file, 'wb') as wf:for line in rf:wf.write(line)cmd_map = {'print': f1,'move': f2 }if len(sys.argv) > 1:cmd = sys.argv[1]if cmd in cmd_map:cmd_map[cmd]()if len(sys.argv) == 4:if sys.argv[1] == 'copy_file':old = sys.argv[2]new = sys.argv[3]if os.path.isfile(old) and os.path.isdir(new):copy_file(old, new) # sys.argv接受所有py文件作為腳本執(zhí)行外界傳入的參數(shù) # 外界執(zhí)行傳參的方式,cmd中通過python接收器直接執(zhí)行py文件,python3 py文件 參數(shù)們 # sys.argv = [py文件絕對路徑, 參數(shù)1, ..., 參數(shù)n]os操作系統(tǒng)模塊
生成單級目錄:os.mkdir('dirname') 生成多層目錄:os.makedirs('dirname1/.../dirnamen2') 重命名:os.rename("oldname","newname") 工作目錄:os.getcwd() 刪除文件:os.romeve('file_path') 刪除單層空目錄:os.rmdir('dirname') 移除多層空目錄:os.removedirs('dirname1/.../dirnamen') 列舉目錄下所有資源:os.listdir('dirname') 路徑分隔符:os.sep 行終止符:os.linesep 文件分隔符:os.pathsep 操作系統(tǒng)名:os.name 操作系統(tǒng)環(huán)境變量:os.environ 執(zhí)行shell腳本:os.system() import os print(os.sep, os.linesep, os.pathsep, os.name, os.environ)# os.mkdir('abc') # 在當(dāng)前文件所在路徑下創(chuàng)建abc文件夾 # os.mkdir('D:\\abc') # 就是在指定的絕對路徑下創(chuàng)建abc文件夾# os.mkdir('a/b/c') # a,b必須提前存在,c不能存在 # os.makedirs(r'a\b\c') # a,b存在與否都可以,c不能存在# os.rename("a", "aa")# print(os.getcwd())# os.rmdir('aa/b/c')# os.removedirs('aa/b/c')# os.remove('aa/bb/1.py')# print(os.listdir(r'F:\python8期\課堂內(nèi)容\day18\代碼\part4'))def delete_dir(folder):for path in os.listdir(folder):# 如果path是文件夾 delete_dir(path)# 如果是文件os.remove(path)pass# for走完了代表folder內(nèi)部刪空了,可以刪folderprint(os.system('dir'))os.path系統(tǒng)路徑操作
執(zhí)行文件的當(dāng)前路徑:__file__ 返回path規(guī)范化的絕對路徑:os.path.abspath(path) 將path分割成目錄和文件名二元組返回:os.path.split(path) 上一級目錄:os.path.dirname(path) 最后一級名稱:os.path.basename(path) 指定路徑是否存在:os.path.exists(path) 是否是絕對路徑:os.path.isabs(path) 是否是文件:os.path.isfile(path) 是否是路徑:os.path.isdir(path) 路徑拼接:os.path.join(path1[, path2[, ...]]) 最后存取時間:os.path.getatime(path) 最后修改時間:os.path.getmtime(path) 目標大小:os.path.getsize(path) import os.path import os # 當(dāng)前執(zhí)行文件的絕對路徑 print(__file__)# F:\python8期\課堂內(nèi)容\day18\代碼\part5\os_path.py res = os.path.abspath(r'F:/python8期\課堂內(nèi)容/day18\\代碼\part5\\os_path.py') print(res)# ('F:\\python8期\\課堂內(nèi)容\\day18\\代碼\\part5', 'os_path.py') os_path.py res = os.path.split(r'F:\python8期\課堂內(nèi)容\day18\代碼\part5\os_path.py') print(res, res[1]) # print(r'F:\python8期\課堂內(nèi)容\day18\代碼\part5\os_path.py'.rsplit(os.sep, 1))print(__file__) print(os.path.dirname(__file__)) print(os.path.dirname(os.path.dirname(__file__)))# F:\python8期\課堂內(nèi)容\day18\代碼 BASE_DIR = os.path.dirname(os.path.dirname(__file__)) print(BASE_DIR) # 該項目根目錄是在執(zhí)行時,自動獲取的當(dāng)前項目根目錄的絕對路徑# 案例:項目根目錄的應(yīng)用場景 import sys sys.path.append(BASE_DIR) # 所有的導(dǎo)包/導(dǎo)模塊都依賴BASE_DIR print(sys.path)from part3.abc import new from part1.x import y print(new) print(y)# from part5 import mm # print(mm.mmmmm)# from mm import mmmmm # print(mmmmm)# sys.path.append('F:\python8期\課堂內(nèi)容\day18\代碼\part5') part1_path = os.path.join(BASE_DIR, 'part1') # => BASE_DIR + os.sep + 'part1' sys.path.append(part1_path) part3_path = os.path.join(BASE_DIR, 'part3') sys.path.append(part3_path) print(sys.path)# 最后一級名稱:os.path.basename(path) print(os.path.basename(r'F:\python8期\課堂內(nèi)容\day18\代碼\part5'))# 路徑拼接 new_path = os.path.join(BASE_DIR, 'part3', 'abc', 'new.py') print(new_path)""" 指定路徑是否存在:os.path.exists(path) 是否是絕對路徑:os.path.isabs(path) 是否是文件:os.path.isfile(path) 是否是路徑:os.path.isdir(path) """ print(os.path.exists(new_path)) # True print(os.path.isabs(new_path)) # Trueprint(os.path.exists('abc')) # True print(os.path.isabs('abc')) # Falseprint(os.path.isfile(new_path)) # True print(os.path.isdir(new_path)) # Falseprint(os.path.isfile('abc')) # False print(os.path.isdir('abc')) # True# 上傳下載文件的進度 # 目標大小:os.path.getsize(path) print(os.path.getsize(new_path))# file_path = r'F:\python8期\課堂內(nèi)容\day18\代碼\part5\os_path.py' file_path = r'F:\python8期\課堂內(nèi)容\day18\代碼\part5\mm.py' print(os.path.getctime(file_path)) print(os.path.getatime(file_path)) print(os.path.getmtime(file_path))1557215578.582706 1557215584.565778 1557215578.5837033print(os.path.normcase('F:\Day18\\代碼\part5\mm.py'))print(os.path.normpath('F:\Day18\\代碼\part5\..\..'))os案例
# 將part5下的mm.py移動到part6下abc文件夾中 import os import sys BASE_DIR = os.path.dirname(os.path.dirname(__file__)) sys.path.append(BASE_DIR)""" def move_file(file, folder):if not (os.path.exists(file) and os.path.isfile(file)):print('文件不存在或非法')return Falseif not os.path.exists(folder):os.makedirs(folder)file_name = os.path.split(file)[1]# file_name = os.path.basename(file)new_file = os.path.join(folder, file_name)with open(file, 'rb') as rf, open(new_file, 'wb') as wf:for line in rf:wf.write(line)os.remove(file)file = os.path.join(BASE_DIR, 'part5', 'mm.py') folder = os.path.join(BASE_DIR, 'part6', 'abc') move_file(file, folder) """# 遍歷打印目標路徑中所有的txt文件 def print_txt(folder):if not os.path.exists(folder) or os.path.isfile(folder):returnfor path in os.listdir(folder):file_path = os.path.join(folder, path)if os.path.isfile(file_path) and file_path.endswith('.txt'):print(path)elif os.path.isdir(file_path):print_txt(file_path) # 遞歸 target_path = os.path.join(BASE_DIR, 'part6', 'target') print_txt(target_path)?
轉(zhuǎn)載于:https://www.cnblogs.com/wangwei5979/p/10834948.html
總結(jié)
以上是生活随笔為你收集整理的初学python之路-day18的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么计算机中0.2+0.1不等于0.3
- 下一篇: 你真的确定Spring AOP的执行顺序