閱讀目錄python
時間模塊(time、datetime)shell
日曆模塊(calendar)數據庫
sys模塊windows
os模塊架構
os.path模塊app
##時間模塊函數
# #time模塊:時間戳、結構化的時間、格式化的字符串時間 # #一、時間戳(timestamp):一般來講,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。咱們運行「type(time.time())」,返回的是float類型。 # #二、格式化的時間字符串(Format String) # #三、結構化的時間(struct_time):struct_time元組共有9個元素共九個元素:(年,月,日,時,分,秒,一年中第幾周,一年中第幾天,是不是夏令時) # #四、英文顯示 'Mon Jan 26 00:52:24 1970' ----》format默認爲:"%a %b %d %H:%M:%S %Y"
import datetime import time #時間戳 1557227892.3337016 print(time.time()) #將時間戳轉換爲本地時區結構化時間元組 struct_time print(time.localtime()) #將時間戳轉換爲UTC時區結構化時間元組 struct_time print(time.gmtime()) #將一個struct_time轉化爲時間戳 ---> 1557229253.0 print(time.mktime(time.localtime())) #結構化時間轉爲格式化輸出時間 2019-05-07 19:38:23 print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))) #把一個格式化時間字符串轉化爲struct_time。實際上它和strftime()是逆操做 time.struct_time(tm_year=2019, tm_mon=5, tm_mday=7, tm_hour=19, tm_min=38, tm_sec=23, tm_wday=1, tm_yday=127, tm_isdst=-1) print(time.strptime('2019-05-07 19:38:23','%Y-%m-%d %X')) #結構化時間轉爲英文格式輸出、無參默認傳入結構化時間time.localtime() print(time.asctime())#Tue May 7 19:48:26 2019 print(time.asctime(time.localtime())) print(time.asctime(time.localtime(time.time()))) #將時間戳轉爲英文格式輸出、無參默認傳入時間戳time.time() print(time.ctime()) print(time.ctime(time.time())) #得到當前時間 2019-05-07 19:56:56.738921 print(datetime.datetime.now()) #時間戳格式time.time()轉爲日期格式 2019-05-07 print(datetime.date.fromtimestamp(time.time())) #得到三天後時間2019-05-10 20:03:08.253856 print(datetime.datetime.now() + datetime.timedelta(3)) #得到三天前的時間2019-05-04 20:03:54.933696 print(datetime.datetime.now() + datetime.timedelta(-3)) #得到當前時間+3小時 2019-05-07 23:04:29.103221 print(datetime.datetime.now() + datetime.timedelta(hours=3)) #得到當前時間+30分鐘 2019-05-07 20:35:01.856802 print(datetime.datetime.now() + datetime.timedelta(minutes=30)) c_time = datetime.datetime.now() print(c_time.replace(minute=3,hour=2)) #時間替換 print( datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) print(datetime.datetime(2014, 8, 15, 9, 57, 52, 779893)) print(datetime.datetime.today())#2019-05-07 20:13:31.223521
%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 當前時區的名稱 %% %號自己
##日曆模塊(calendar)測試
import calendar #判斷是不是閏年 print(calendar.isleap(2019)) #查看某年某月日曆 print(calendar.month(2018,8)) c = calendar.calendar(2017) c = calendar.TextCalendar() c = calendar.HTMLCalendar() print(c) #返回兩個整數。第一個是該月的首日所在星期的日期碼(0~6),每週的起始日期碼0(星期一)到6(星期日),第二個是該月的天數(28-31) print(calendar.monthrange(2019, 5)) #查看某年某月某日是星期幾 print(calendar.weekday(2017, 7, 23))
##sys模塊spa
#1 sys.argv 命令行參數List,第一個元素是程序自己路徑 #2 sys.exit(n) 退出程序,正常退出時exit(0) #3 sys.version 獲取Python解釋程序的版本信息 #4 sys.maxint 最大的Int值 #5 sys.path 返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變量的值 #6 sys.platform 返回操做系統平臺名稱 #示例 import sys import os.path print(sys.argv)#['C:/untitled1/第十八天/第十八天.py'] def f1(): print('執行自動化打印方法') def f2(): print('執行自動化移動方法') def copy_file(old,new): # print('將%s複製成%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] # copy_file(old,new) if os.path.isfile(old) and os.path.isdir(new): copy_file(old,new) #在命令行輸入
python3 C:\untitled1\第十八天\第十八天.py print python3 C:\untitled1\第十八天\第十八天.py copy_file C:\untitled1\user_info C:\untitled1\第十八天
##os.path 模塊操作系統
#執行文件的當前路徑:__file__ #返回path規範化的絕對路徑: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 #C:/untitled1/第十八天/第十八天.py print(__file__) #C:\untitled1\第十八天\n第十八天.p res = os.path.abspath('C:\\untitled1\第十八天\第十八天.py') res1 = os.path.abspath('C:/untitled1\第十八天\第十八天.py') res2 = os.path.abspath(r'C:\untitled1\第十八天\第十八天.py') res3 = os.path.abspath('C:/untitled1\第十八天\\n第十八天.py') print(res3) #('C:\\untitled1', '第十八天') res=os.path.split(r'C:\untitled1\第十八天') print(res) print(res[1])#第十八天 #上一級C:/untitled1/第十八天 print(os.path.dirname(__file__)) print(os.path.dirname(os.path.dirname(__file__)))#C:/untitled1 BASE_DIR = os.path.dirname(os.path.dirname(__file__)) print(BASE_DIR)#該項目根目錄是在執行時自動獲取的當前項目根目錄的絕對路徑 #案例:項目根目錄的應用場景 import sys sys.path.append(BASE_DIR)#全部的導包/模塊兜裏來BASE_DIR print(sys.path) #最後一級名稱 第十八天.py print(os.path.basename(r'C:\untitled1\第十八天\第十八天.py')) #路徑拼接 new_path = os.path.join(BASE_DIR,'第十七天','pgk','test.py') print(os.path.exists(new_path)) #判斷是否存在 print(os.path.isabs(new_path))#判斷是不是絕對路徑 print(os.path.isfile(new_path))#判斷是不是文件 print(os.path.isdir(new_path))#判斷是不是文件夾/目錄 #獲取文件大小 print(os.path.getsize(r'C:\untitled1\第十八天\new.py')) # file_path = r'C:\untitled1\第十八天\第十八天.py' print(os.path.getctime(file_path))#建立時間 print(os.path.getatime(file_path))#訪問時間 print(os.path.getmtime(file_path))#修改時間
##os模塊
#生成單級目錄:os.mkdir('dirname') #生成多層目錄:os.makedirs('dirname1/.../dirnamen2') #重命名:os.rename("oldname","newname") #工做目錄:os.getcwd() #刪除單層空目錄:os.rmdir('dirname') #移除多層空目錄:os.removedirs('dirname1/.../dirnamen') #刪除文件:os.remove(file) #列舉目錄下全部資源:os.listdir('dirname') #路徑分隔符:os.sep #行終止符:os.linesep #文件分隔符:os.pathsep #操做系統名:os.name #操做系統環境變量:os.environ #執行shell腳本:os.system()
#示例
import os
# os.mkdir('abc')#在當前文件所在路徑下建立abc文件夾
# os.mkdir('D:\\abc')#在絕對路徑下建立
#不能遞歸建立,文件夾c前面不存在報錯
# os.mkdir('a/b/c')
#遞歸建立
# os.makedirs(r'a\b\c')
#重命名
# os.rename('a','aa')
# #刪除空目錄,不空沒法刪除
# os.rmdir('aa/b/c')
# os.removedirs('aa/b/c')
#刪除文件,
os.remove()
##跨文件移動文件
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 False if 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)
##遞歸刪除的思路
def delete_dir(folder): for path in os.listdir(folder): # 若是path是文件夾 delete_dir(path) # 若是是文件os.remove(path) pass # for走完了表明folder內部刪空了,能夠刪folder
##遞歸遍歷打印目標路徑中全部的txt文件
def print_txt(folder): if not os.path.exists(folder) or os.path.isfile(folder): return for 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)
##項目開放週期
1.調研 2.需求分析 3.架構師完成項目demo,完成項目架構 4.分工 5.寫代碼 6.白盒黑盒測試 7.項目審覈發佈 => 項目 -> 產品
#項目下文件名稱及做用bin: 可執行文件,入口,入口也能夠放在項目根目錄下
core: 核心代碼
db:數據庫相關文件
interface:接口
lib:包、模塊、第三方文件夾
log:日誌
setting:配置
static:靜態文件