python初步學習-import和datetime模塊


模塊

一個完整大型的python程序是由模塊和包的形式組織起來的,可見模塊在python中的重要性。模塊是一種組織型式,它許多有關聯(關系)的代碼組織放到單獨的獨立文件中。簡單的說,可以把模塊理解為一個包含了許多強大功能(方法)的包。在python標准庫中就包含許多模塊,有很多模塊內的方法都會被經常使用到。

python模塊有什么用?

  • 模塊內有許多函數方法,利用這些方法可以更簡單的完成許多工作。
  • 模塊可以在文件中永久保存代碼。在python交互式解釋器中操作輸入的代碼,在退出python時是不會被保存的,而模塊文件中的代碼是永久存在的。
  • 從實用性方面來說,模塊可以跨系統平台使用,只需要Copy代碼就可以。比如說,有一個全局對像,會被許多文件使用,這時為了方便把它寫入一個模塊中,再被調用是最好的方法。

import 語句語法

使用import語句導入模塊,import語句語法如下:
import module
關鍵字 模塊名

例如:
import sys #導入math模塊
sys.path #調用math模塊中的path屬性

如果要同時導入多個模塊,只需要在模塊名之前用逗號進行分隔:

import module1,module2,module3……

import 語句導入模塊順序

在編寫代碼過程中,我們可能需要多種多樣的模塊。需要注意的是最好把導入模塊放在代碼的開頭。為什么呢
解釋器在執行語句是,遵循作用域原則。因為這個作用域有關系,如果在頂層導入模塊,此時它的作用域是全局的;如果在函數內部導入了模塊,那它的作用域只是局部的,不能被其他函數使用。如果其他函數也要用到這個模塊,還需要再次導入比較麻煩。

在用import語句導入模塊時最好按照這樣的順序:

  • python標准庫模塊
  • python第三方模塊
  • 自定義模塊

導入模塊的幾種方法

  • import
import sys
sys.path

  • from-import
    相對第一種方法來說更加簡單,不用寫模塊名,只需要寫方法名
from subprocess import Popen, PIPE
a = Popen(['ls'],stdout=PIPE)

  • 設置別名的方式
    個人不推薦這種方法,因為后期會給維護代碼增加工作量
import subprocess.Popen as f
a = f(['ls'])

datetime

datetimepython處理日期和時間的標准庫

獲取當前日期和時間

>>> from datetime import datetime
>>> now = datetime.now() # 獲取當前datetime
>>> print(now)
2017-11-09 23:56:48.390000
>>> print(type(now))
<class 'datetime.datetime'>

datetime 加減

對日期和時間進行加減實際上就是把datetime往后或往前計算,得到新的datetime。加減可以用+-運算符,不過需要導入timedalta這個類

注意timedelta 中只支持 days、seconds、microseconds

>>> from datetime import datetime, timedelta

>>> now = datetime.now()
>>> print now
2017-11-10 00:04:49.656000
>>> now += timedelta(hours=10)
>>> print now
2017-11-10 10:04:49.656000
>>> now += timedelta(hours=-10)
>>> print now
2017-11-10 00:04:49.656000

獲取指定日期和時間

要指定某個日期和時間,我們直接用參數構造一個datetime

>>> from datetime import datetime
>>> dt = datetime(2015, 4, 19, 12, 20) # 用指定日期時間創建datetime
>>> print(dt)
2015-04-19 12:20:00

時間轉換

datetime 轉換為 timestamp

在計算機中,我們把1970年1月1日 00:00:00 UTC+00:00時區的時刻稱為epoch time,記為0(1970年以前的時間timestamp為負數),當前時間就是相對於epoch time的秒數,稱為timestamp。
你可以認為:

timestamp = 0 = 1970-1-1 00:00:00 UTC+0:00

對應的北京時間是:

timestamp = 0 = 1970-1-1 08:00:00 UTC+8:00

可見timestamp的值與時區毫無關系,因為timestamp一旦確定,其UTC時間就確定了,轉換到任意時區的時間也是完全確定的,這就是為什么計算機存儲的當前時間是以timestamp表示的,因為全球各地的計算機在任意時刻的timestamp都是完全相同的(假定時間已校准)。

把一個datetime類型轉換為timestamp只需要簡單調用timestamp()方法:

>>> from datetime import datetime
>>> dt = datetime(2015, 4, 19, 12, 20) # 用指定日期時間創建datetime
>>> dt.timestamp() # 把datetime轉換為timestamp
1429417200.0

timestamp轉換為datetime

要把timestamp轉換為datetime,使用datetime提供的fromtimestamp()方法:

>>> from datetime import datetime
>>> t = 1429417200.0
>>> print(datetime.fromtimestamp(t))
2015-04-19 12:20:00

timestamp也可以直接被轉換到UTC標准時區的時間:

>>> from datetime import datetime
>>> t = 1429417200.0
>>> print(datetime.fromtimestamp(t)) # 本地時間
2015-04-19 12:20:00
>>> print(datetime.utcfromtimestamp(t)) # UTC時間
2015-04-19 04:20:00

str轉換為datetime

很多時候,用戶輸入的日期和時間是字符串,要處理日期和時間,首先必須把str轉換為datetime。轉換方法是通過datetime.strptime()實現,需要一個日期和時間的格式化字符串:

>>> from datetime import datetime
>>> cday = datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')
>>> print(cday)
2015-06-01 18:19:59

datetime轉換為str

如果已經有了datetime對象,要把它格式化為字符串顯示給用戶,就需要轉換為str,轉換方法是通過strftime()實現的,同樣需要一個日期和時間的格式化字符串:

>>> from datetime import datetime
>>> now = datetime.now()
>>> print(now.strftime('%a, %b %d %H:%M'))
Mon, May 05 16:28


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM