Python基礎入門(8)- Python模組和包

葛老頭發表於2021-12-30

1.包與模組的定義與匯入

1.1.什麼是python的包與模組

  • 包就是資料夾,包中還可以有包,也就是子資料夾
  • 一個個python檔案模組


1.2.包的身份證

__init__.py是每一個python包裡面必須存在的檔案,這個檔案裡面可以沒有任何內容


1.3.如何建立包

  • 要有一個主題,明確功能,方便使用
  • 層次分明,呼叫清晰
  • 檔案裡面要有包的身份認證檔案,即__init__.py檔案,證明該資料夾是一個包


1.4.包的匯入

雖然說圖示animal包裡面還有子包子檔案,但是import animal只能拿到當前包__init__.py裡面的功能;當import具體檔案時,比如import test1.py只能拿當前模組(當前檔案)中的功能,同級animal包中的功能無法訪問使用


1.5.模組的匯入

 

2.第三方包

  • 阿里雲 http://mirrors.aliyun.com/pypi/simple/
  • 豆瓣http://pypi.douban.com/simple/
  • 清華大學 https://pypi.tuna.tsinghua.edu.cn/simple/
  • 中國科學技術大學 http://pypi.mirrors.ustc.edu.cn/simple/
  • 華中科技大學http://pypi.hustunique.com/
  • 使用格式:如安裝ipython版本為19.0.1的包pip install -i http://mirrors.aliyun.com/pypi/simple/ ipython==19.0.1

 

3.Python的datetime與time

  • datetime和time這兩個包為python中常用的兩個時間包
  • datetime常用於對日期的處理
  • time常用於對時間、計時等處理

3.1.datetime

  • 日期與時間的結合體-date and time
  • 獲取當前時間
  • 獲取時間間隔
  • 將時間物件轉成時間字串
  • 將字串轉成時間型別

3.1.1.datetime包的常用功能

獲取當前時間

獲取時間間隔

 1 # coding:utf-8
 2 
 3 from datetime import datetime
 4 from datetime import timedelta
 5 
 6 now=datetime.now()
 7 print(now,type(now))    #2021-12-27 16:19:18.586413 <class 'datetime.datetime'>
 8 
 9 three_days=timedelta(days=3)
10 print(type(three_days)) #<class 'datetime.timedelta'>
11 
12 after_three_day=now+three_days
13 print(after_three_day)  #2021-12-30 16:19:18.586413

時間物件轉字串

1 # coding:utf-8
2 
3 from datetime import datetime
4 
5 now=datetime.now()
6 now_str=now.strftime('%Y-%m-%d %H:%M:%S')
7 print(now_str,type(now_str))    #2021-12-27 16:28:06 <class 'str'> 日期字串無法實現日期的加減法,必須轉成日期物件型別才能實現日期的加減法

時間字串轉時間型別

 1 # coding:utf-8
 2 
 3 from datetime import datetime
 4 from datetime import timedelta
 5 
 6 now=datetime.now()
 7 now_str=now.strftime('%Y-%m-%d %H:%M:%S')
 8 print(now_str,type(now_str))    #2021-12-27 16:37:11 <class 'str'>
 9 
10 now_obj=datetime.strptime(now_str,'%Y-%m-%d %H:%M:%S')
11 print(now_obj,type(now_obj))    #2021-12-27 16:37:11 <class 'datetime.datetime'>,轉成物件的時候,後面的格式必須得跟字串的格式匹配
12 
13 three_days=timedelta(days=3)
14 after_three_day=now_obj+three_days
15 print(after_three_day,type(after_three_day))    #2021-12-30 16:37:11 <class 'datetime.datetime'>

3.1.2.python的常用時間格式化符號

1 # coding:utf-8
2 
3 from datetime import datetime
4 
5 now=datetime.now()
6 now_str=now.strftime('%Y-%m-%d %H:%M:%S %p %j %U %A')
7 print(now_str,type(now_str))    #2021-12-27 16:45:31 PM 361 52 Monday <class 'str'>

3.2.time

3.2.1認識時間戳

  • 1970年1月1日00時00分00秒至今的總毫秒(秒)數
  • 使用timestamp代表時間戳
  • 時間戳是float型別的

3.2.2認識python的time模組與常用方法

生成時間戳函式time

1 # coding:utf-8
2 import time
3 
4 now=time.time()
5 print(now,type(now))    #1640595949.671707 <class 'float'>

獲取本地時間函式localtime

timestamp不傳代表當前時間

1 # coding:utf-8
2 import time
3 
4 now=time.time()
5 time_obj=time.localtime(now)
6 print(time_obj,type(time_obj))    #time.struct_time(tm_year=2021, tm_mon=12, tm_mday=27, tm_hour=17, tm_min=6, tm_sec=43, tm_wday=0, tm_yday=361, tm_isdst=0)  <class 'time.struct_time'>

localtime對應欄位介紹

1 # coding:utf-8
2 import time
3 
4 now=time.localtime()
5 print(now)  #time.struct_time(tm_year=2021, tm_mon=12, tm_mday=27, tm_hour=17, tm_min=1, tm_sec=12, tm_wday=0, tm_yday=361, tm_isdst=0)

暫停函式sleep

1 # coding:utf-8
2 import time
3 
4 for i in range(10):
5     print(i)
6     time.sleep(1)

time中的strftime與strptime

 1 # coding:utf-8
 2 import time
 3 
 4 now=time.time()
 5 print(now,type(now))    #1640596914.3263566 <class 'float'>
 6 
 7 #now_str=time.strftime('%Y-%m-%d %H:%M:%S',now)  #TypeError: Tuple or struct_time argument required 報錯,因為now時間戳是浮點型,不是time.localtime對應的時間型別
 8 print(type(time.localtime()))   #<class 'time.struct_time'>
 9 now_str=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
10 print(now_str,type(now_str))    #2021-12-27 17:21:54 <class 'str'>

1 # coding:utf-8
2 import time
3 
4 now=time.time()
5 now_str=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
6 now_obj=time.strptime(now_str,'%Y-%m-%d %H:%M:%S')
7 print(now_obj,type(now_obj))    #time.struct_time(tm_year=2021, tm_mon=12, tm_mday=27, tm_hour=18, tm_min=5, tm_sec=40, tm_wday=0, tm_yday=361, tm_isdst=-1) <class 'time.struct_time'>

3.2.3datetime轉時間戳與datetime時間戳轉時間物件的方法

datetime轉時間戳

1 # coding:utf-8
2 
3 from datetime import datetime
4 
5 now=datetime.now()
6 now_stamp=datetime.timestamp(now)
7 print(now_stamp,type(now_stamp))    #1640600288.843319 <class 'float'>

datetime時間戳以及time時間戳轉時間物件

 1 # coding:utf-8
 2 
 3 from datetime import datetime
 4 import time
 5 
 6 now=datetime.now()
 7 now_stamp=datetime.timestamp(now)
 8 now_stamp_obj=datetime.fromtimestamp(now_stamp)
 9 print(now_stamp_obj,type(now_stamp_obj))    #2021-12-27 18:56:15.849622 <class 'datetime.datetime'>
10 
11 now_time=time.time()
12 now_time_obj=datetime.fromtimestamp(now_time)
13 print(now_time_obj,type(now_time_obj))  #2021-12-27 18:56:15.849623 <class 'datetime.datetime'>

 

4.Python內建庫os與sys模組

4.1.os模組

4.1.1.os的檔案與目錄函式介紹

 1 # coding:utf-8
 2 
 3 import os
 4 
 5 current_path=os.getcwd()
 6 print(current_path)
 7 
 8 new_path='%s/test1/test2' % current_path
 9 os.makedirs(new_path)
10 
11 os.removedirs('test1/test2')
12 os.rename('test1','test')
13 data=os.listdir(current_path)
14 print(data)

4.1.2.os.path模組常用函式介紹


4.2.sys模組

 

 

相關文章