python模塊知識一 自定義模塊、time、datetime時間模塊

第五章 模塊

1.自定義模塊:

  1. 模塊分類:

    1. 內置模塊(標準庫)– python解釋器自帶的.py文件(模塊)
    2. 第三方模塊(各種大神寫的)– 需要額外下載(併發編程pypi)
    3. 自定義模塊(自己寫的)–不用額外下載
  2. 每一個py文件就是一個模塊

    import #導入模塊

    模塊的好處:

    1. 避免些重複代碼
    2. 可以多次利用
    3. 拿來主義
  3. 導入模塊發生的事情:

    1. 當前的名稱空間中開闢一個新空間(test)
    2. 將模塊中所有的代碼執行
    3. 通過 模塊名.函數名 進行查找函數
  4. 使用別名使文件名更短:

​ import test as t

print(locals())#查看當前空間的變量
i mport test
print(locals())
#調用導入模塊的函數
test.func()

#使用別名
import test as t
t.func()
  1. 不同模塊使用同一別名做兼容性
msg = {1:"扳手",2:"螺絲刀"}
choose = input(msg)
if choose == 1:
    import meet as t
elif choose == 3:
    import test as t

t.func()
  1. from :

​ from 和import區別:

​ import:#將整個模塊運行

​ 缺點:佔用內存大。

​ 優點:不會和當前文件定義的變量或者函數發生衝突

​ from:

​ 缺點:會與當前的文件定義的變量或者函數發生衝突,(可以用別名解決)

​ 優點:佔用內存小

  1. from * :–拿模塊所有

    會出現覆蓋現象,不能解決,不建議使用

    __all__ = [“可被導入的函數名和變量名”]#寫在模塊中配合from * 使用指定要拿的

name = 'cc'
def func():
    print('is 666')
from test import *
print(name)
func()
name = "ww"
from test import name as n#別名
print(name)
print(n)
  1. 模塊導入的坑

    例如:不要三個py文件相互導入,會形成環路

  2. 模塊的兩種用法:

    腳本:(在cmd中執行 python text.py

    模塊:自測函數不會被導入

def func():
    print(1)
if __name__ == '__main__':#自測接口
    func()
  1. 導入路徑:

    1. 相對路徑:

      from day15.t1 import meet
      print(meet.name)
    2. 絕對路徑:

      #錯誤引用
      from r"D:\" import meet
      from ../
      #正確引用
      from sys import path
      print(sys.path)
      path.insert(0,"D:\\")
      import meet
      print(meet.name)

    sys.path中模塊的順序:自定義 > 內置 > 第三方

2.time –時間模塊

  1. time.time():–時間戳,浮點數,可運算
  2. time.sleep():–睡眠 #秒
import time
print(time.time() + 5000)
time.sleep(3)#睡眠3秒
  1. time.strftime(“格式化”,”結構體時間”):將時間戳、結構體時間轉換成字符串時間
  2. time.gmtime():–元組形式 命名元組,結構體時間,格林尼治時間
  3. time.localtime():計算機當前時間,結構體時間
print(time.strftime("%Y-%m-%d %H:%M:%S"))

print(time.gmtime())
print(time.gmtime()[0])
print(time.gmtime().tm_year)

#將時間戳轉換成字符串時間
print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime(15000)))
  1. time.strptiem():將字符串時間轉換成結構化時間
  2. time.mktime():將結構化時間轉換成時間戳
print(time.strptime("2024-3-16 12:03:30","%Y-%m-%d %H:%M:%S"))

#將字符串時間轉換成時間戳
print(time.mktime(time.strptime("2024-3-16 12:03:30","%Y-%m-%d %H:%M:%S")))
print(time.mktime(time.gmtime()))

3.datetime 模塊

​ 用處:記錄日誌使用,計算時間

from datetime import datetime,timedelta
print(datetime.now())#獲取當前時間
print(type(datetime.now()))#--對象

print(datetime(2019,5,20,13,14,00))#指定日期標準化

print(datetime(2019,5,20,13,14,00) - datetime(2019,5,20,13,14,00))

#將當前時間轉換成時間戳
t = datetime.now()
print(t.timestamp())
#將時間戳轉換成當前時間
import time
print(datetime.fromtimestamp(time.time()))
print(datetime.fromtimestamp(150000))

#字符串轉成對象
print(type(datetime.strptime("2019-10-10 22:23:24","%Y-%m-%d %H:%M:%S")))
#將對象轉成字符串
print(str(datetime.now()))
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))

#timedelta 時間運算.加減
print(datetime.now() + timedelta(hours = 30 * 24 *12))

点赞

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *