day16——import、datetime獲得時間、時間格式的相互轉換
阿新 • • 發佈:2017-11-10
rda 北京 type __init__ 轉換成 我們 不同的 包含 介紹 在日常的開發工作中,我們要寫很多的Python代碼,如果都寫在一個文件中,會導致代碼特別難維護,為了拓展代碼的可維護性,我們把函數寫在不同的文件裏,這樣每個文件包含的文件就比較少,邏輯更加清楚。在Python中,我們創建的文件基本都是以.py結尾,那一個.py的文件就稱之為模塊。
為了方便管理模塊,Python中又引入了包(Packge)這個概念,每個包下面都有一個__init__.py文件,這個文件是必須存在的,否則,Python就把這個目錄當成普通目錄,而不是一個包。__init__.py可以是空文件,也可以有Python代碼。因為__init__.py本身就是一個模塊,舉個例子:test目錄下面有__init_py,app.py,bbb.py三個文件,
a)import導入
有時候一個文件或者一個包中已經出現了一個函數,我們在另一個Python代碼中需要引入該文件或者該文件的某個函數,那怎麽解決呢?Python給我們提供一個關鍵字import,下面我們來了解一下它的用法:
1.如果是本地導入文件,直接使用:import filename
2.如果導入的是一個包,該包下面必須是有__init__.py文件才可以導入,否則報錯,只有有了__init__.py文件,Python解析器才會把這個目錄當成包。
常用的導入模塊格式:
form xxx import xxx
import xxx
在導入的時候,.py的後綴直接省略,如果是多級的包,或者想導入包裏面的函數等,可以使用from進行導入,舉個例子:
from aaa import bbb
import os
解釋:第一個例子是導入aaa包下面的bbb模塊或者導入aaa文件下面的bbb類或者函數。
第二個import是直接導入系統模塊os模塊。
#import 一般我們用作導入模塊來用,常用的快捷鍵是 alt + Enter就可以直接導入模塊
#from ... import ... 這個是從什麽模塊中導入什麽,最終你可以導入的是一個函數,也可以是一個類,也可以是一個模塊
#總結:就是一層一層的調用就可以了。
#註意:1.import後面導入的是什麽,在調用的時候,就必須寫什麽,除非你用from進行導入
2.導入的時候不寫後綴名字
datetime獲得時間
The distinction between naive and aware doesn‘t apply to timedelta objects
Subclass relationships:
object
timedelta
tzinfo
time
date
datetime
time
在Python文檔裏,time是歸類在Generic Operating System Services中,換句話說,它提供的功能是更加接近於操作系統層面的。通讀文檔可知,time模塊是圍繞著Unix Timestamp進行的。time模塊基於不用於取時間,取時間推薦使用datetime模塊
Python開發過程中,我們經常會用到獲取當前時間,根據當前時間生成一個和當天時間相關的文件,這樣我們在後期看查找文件的時候就方便了很多,那Python又如何來獲取當前時間呢?
1from datetime import datetime 2 now_time = datetime.now() 3 a = now_time.strftime(‘%Y-%m-%d‘) 4 print(now_time) 5 print(a) 6 print(type(now_time))
打印結果為: 解釋: 1.先導入datetime類 2.通過datetime的now方法就獲得當前所需要的時間 3.datetime還是有好多方法的,可以獲取year,month等,請通過dir()訪求查看 4.此時我們獲得的now_time還是一個datetime類,所以我們需要用strftime方法轉換成字符串,strftime的參數就是最終需要字符串的形式 5.strftime需要便是時間的參數有很多,下面我們介紹一下最長用的一些參數: 格式參數: %Y :帶世紀部分的十制年份 %m :十進制表示的月份 %d :十進制表示的每月的第幾天 %H :24小時制的小時 %M :十進制表示的分鐘數 %s :十進制的秒數 %c :標準時間。如:04/25/17 14:35:14 類似於這種形式 這幾個參數就是最常用到的我們用的時間 此時還有一個問題,就是在我們開發過程中,經常要取昨天的時間,或者明天的時間,那又應該怎麽辦呢? 例子:
1from datetime import datetime,timedelta 2 now_time = datetime.now() 3 a = now_time.strftime(‘%c‘) 4 print(now_time) 5 print(a) 6 b = now_time + timedelta(days =-1) 7 print(b)
打印結果為: 解釋: Timedelta可以接收days和seconds兩個參數,正數代表幾天之前的,負數代表幾天之前的,所以b代表的是一天之前的時候。 #time獨有的用法:
1 import time 2 3 for i in xrange(1,4): 4 print (i) 5 time.sleep(0.1) 6 7 #datetime 8 9 from datetime import datetime, timedelta 10 11 now_time = datetime.now() 12 print(now_time) 13 new_time = now_time.strftime(‘%Y-%m-%d %H:%M:%S‘) 14 a = now_time.strftime(‘%c‘) 15 print(new_time) 16 print(a)
#now 獲得當前的時候,strftime用來表示顯示時間的格式 #如果我們要取昨天或者明天的日期,
1 print(‘#‘*30) 2 now_time = datetime.now() 3 yesterday = now_time + timedelta(days =- 1) 4 tomorrow = now_time + timedelta(days =- 1) 5 tomorrow_1 = now_time + timedelta(days=-1) 6 tomorrow = tomorrow_1.strftime(‘%Y-%m-%d‘) 7 print(yesterday) 8 print(tomorrow)
返回結果為:
時間格式的相互轉換 時間的三種存在方式:時間對象、時間字符串,時間戳 (1)字符串轉datetime:
1 from datetime import datetime,timedelta 2 string = ‘2017-04-25 11:59:58‘ 3 time1 = datetime.strptime(string,‘%Y-%m-%d %H:%M:%S‘) 4 print(time1) 5 print(type(time1))
打印結果為:
(2)datetime轉字符串
1 from datetime import datetime,timedelta 2 string = ‘2017-04-25 11:59:58‘ 3 time1 = datetime.strptime(string,‘%Y-%m-%d %H:%M:%S‘) 4 print(time1) 5 print(type(time1)) 6 time1_str = datetime.strftime(time1,‘%Y-%m-%d %H:%M:%S‘) 7 print(type(time1_str)) 8 print(time1_str)
打印結果為:
(3)時間戳轉時間對象:
1 from datetime import datetime,timedelta 2 import time 3 time1 = time.time() 4 print(time1) 5 time1_str = datetime.fromtimestamp(time1) 6 print(time1_str) 7 print(type(time1_str))
打印結果為:
解釋: 1.datetime模塊是包裝了time模塊的,所以只需要了解datetime模塊就可以 2.time.time()是或者當前時間的時間戳,時間戳是指格林威時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現在的總秒數 3.datetime下面有個函數fromtimestamp(時間戳)會把時間戳自動轉換成datetime類型
1 from datetime import datetime 2 import time 3 4 now_time = datetime.now() 5 print(now_time) 6 print(type(now_time)) 7 print(‘###################time to str###################‘) 8 _time = now_time.strftime(‘%Y-%m-%d %H:%M:%S‘) 9 _time = datetime.strftime(now_time,‘%Y-%m-%d %H:%M:%S‘) 10 print(_time) 11 print(type(_time)) 12 print(‘###################str to time###################‘) 13 _d_time = datetime.strptime(_time,‘%Y-%m-%d %H:%M:%S‘) 14 print(_d_time) 15 print(type(_d_time)) 16 17 18 19 print(‘###################時間戳stamp###################‘) 20 #時間戳轉換成時間對象 21 _a = time.time() 22 print(_a) 23 _n_time = datetime.fromtimestamp(_a) 24 print(_n_time) 25 print(type(_n_time))
打印結果為:
day16——import、datetime獲得時間、時間格式的相互轉換