Python的import導入與時間


一、模塊與包

  模塊,在Python可理解為對應於一個文件。在創建了一個腳本文件后,定義了某些函數和變量。你在其他需要這些功能的文件中,導入這模塊,就可重用這些函數和變量。一般用module_name.fun_name,和module_name.var_name進行使用。這樣的語義用法使模塊看起來很像類或者名字空間,可將module_name 理解為名字限定符。模塊名就是文件名去掉.py后綴。

  通常包總是一個目錄,可以使用import導入包,或者from + import來導入包中的部分模塊。包目錄下為首的一個文件便是 __init__.py。然后是一些模塊文件和子目錄,假如子目錄中也有 __init__.py 那么它就是這個包的子包了。
  在創建許許多多模塊后,我們可能希望將某些功能相近的文件組織在同一文件夾下,這里就需要運用包的概念了。包對應於文件夾,使用包的方式跟模塊也類似,唯一需要注意的是,當文件夾當作包使用時,文件夾需要包含__init__.py文件,主要是為了避免將文件夾名當作普通的字符串。__init__.py的內容可以為空,一般用來進行包的某些初始化工作或者設置__all__值,__all__是在from package-name import *這語句使用的,全部導出定義過的模塊

二、import導入

  在python用import或者from…import或者from…import…as…來導入相應的模塊,作用和使用方法與C語言的include頭文件類似。其實就是引入某些成熟的函數庫和成熟的方法,避免重復造輪子,提高開發速度。python的import方法可以引入系統的模塊,也可以引入我們自己寫好的共用模塊。

  import的幾種用法:

  1.如果是本地導入文件,直接使用:import filename

  2. 如果導入的是一個包,該包下面必須是有__init__.py文件才可以導入,否則報錯,只有有了__init__.py文件,python解析器才會把這個目錄當成是的包

  在導入的時候,.py的后綴直接省略,如果是多級的包,或者想導入包里面的函數等,可以使用from進行導入。實例如下:

#test.py
def hello():
    print('hello world')
import momo.test
momo.test.hello()

from momo import test
test.hello()


from momo.test import hello
hello()


import momo.test as aaa
print ('aaaaaaaaaaaaaa')
aaa.hello()
print ('aaaaaaaaaaaaaa')

結果:

 

三、datatime獲得時間

  在 Python 文檔里,time是歸類在Generic Operating System Services中,換句話說, 它提供的功能是更加接近於操作系統層面的。通讀文檔可知,time 模塊是圍繞着 Unix Timestamp 進行的。關於時間子類之間的對應關系:

object
     timedelta
     tzinfo
     time
     date
            datetime

  實例:獲取當前的時間

from datetime import datetime, timedelta

now_time = datetime.now()
print (now_time)
new_time  = now_time.strftime('%Y-%m-%d %H:%M:%S')
a = now_time.strftime('%c')
print (new_time)
print (a)

  結果:

  解釋:

   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  類似於這種形式

  實例:獲取當前日期的前一天與后一天

now_time = datetime.now()
yesterday = now_time + timedelta(days=-1)
tomorrow = now_time + timedelta(days=+1)
tomorrow = tomorrow.strftime('%Y-%m-%d')
print (yesterday)
print (tomorrow)

  結果:

  解釋:正數代表幾天之后的,負數代表幾天之前的

 

四、時間格式的相互轉換

  時間有三種存在方式:時間對象(datetime)、時間字符串(str)、時間戳(timestamp)

  1.時間對象轉換為時間字符串(datetime → str)

from datetime import datetime
import time
now_time  = datetime.now()
print (now_time)
print (type(now_time))
print ('##########time to str############')
_time = now_time.strftime('%Y-%m-%d %H:%M:%S')
print (_time)
print (type(_time))

 結果:

 

  2.時間字符串轉換為時間對象(str → datetime)

print ('###########str to time################')
d_time = datetime.strptime(_time,'%Y-%m-%d %H:%M:%S')
print (d_time)
print (type(d_time))

  結果:

 

  3.時間戳轉換為時間對象(timestamp → datetime)

_a = time.time()
print (_a)
_n_time = datetime.fromtimestamp(_a)
print (_n_time)
print (type(_n_time))

  結果:

 

  

 


免責聲明!

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



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