python27期day15:自定義模塊、模塊導入、模塊的路徑、模塊的查找順序、time、datetime、random、os、sys、做業題

一、模塊的介紹:node

py文件就是一個模塊python

二、模塊的分類:內置模塊:python標準庫 200shell

        第三方模塊bash

        自定義模塊app

三、爲何學習模塊?dom

開發效率高,內置函數和模塊函數

減小重複代碼,分文件管理,有助於修改和維護學習

四、怎麼使用模塊?測試

import 導入ui

五、導入時發生的事情?

#一、將模塊存儲到當前名稱空間中
#二、以模塊的名字命名,並開闢空間。
#三、經過模塊名來使用模塊中的功能
#四、from 模塊名 impor 功能
六、查看全局:
print(globals())
七、as 臨時起別名aa:
from lib import login,register,a as aa
八、同一個模塊寫屢次導入只執行一次:
九、相對路徑導入: import 導入
           from lib import login,register,a as aa
十、絕對路徑導入:先經過sys模塊添加路徑:sys.path.append("C:\個人代碼\day13")
          其餘路徑有異常時記得添加r轉義:sys.path.append(r"C:\Users\zd\Desktop")
十一、查看pycharm預置的模塊:  import sys
                print(sys.modules)
十二、模塊查找順序: 內存
          內置
          sys.path
1三、定義啓動接口:  if __name__ == '__main__':
              開發本身用、用於測試
                login()

1四、查看原生態:print(repr(__name__))

1五、在當前文件中執行__name__獲取的值是'__main__'

在當前文件被當作模塊導入時,__name__獲取的是當前文件名

1六、import和from的對比:import是所有導入

            from是指定功能導入

            都支持as

            from能夠一行導入多個功能

            import建議一行導入一個模塊

十二、time時間模塊
time模塊中對於時間能夠分紅三種形式:
  1. 時間戳: 一般的叫法,時間戳表示的是格林尼治時間是從1970年1月1日00:00:00開始按秒計算的偏移量。這個是實時變化的。咱們運行「type(time.time())」,返回的是float類型
  2. 格式化字符串時間: 格式化的時間字符串(Format String): ‘1999-12-06’
  3. 結構化時間:元組(struct_time) struct_time元組共有9個元素共九個元素:(年,月,日,時,分,秒,一年中第幾周,一年中第幾天等)
  4. 時間戳是計算機可以識別的時間;時間字符串是人可以看懂的時間;元組則是用來操做時間的

    時間模塊咱們就是學會如何獲取當前的時間,以及三種時間之間的轉化就好了。

#一、time.time打印當前系統時間並轉作浮點表達式--時間戳(1970-當前時間通過的秒數、1970Unix誕辰
import time
print(time.time())
#二、time.sleep休眠
print(time.sleep(1))
#三、將時間戳轉換成結構化時間用localtime
import time
print(time.localtime(time.time()))
結果:time.struct_time(tm_year=2019, tm_mon=10, tm_mday=15, tm_hour=21, tm_min=30, tm_sec=7, tm_wday=1, tm_yday=288, tm_isdst=0)
#四、結構化的時間轉換成時間戳用mktime:
print(time.mktime(time.localtime()))
結果:1571146525.0
#五、將結構化時間轉成字符串時間用strftime:
print("當前時間是",time.strftime("%Y-%m-%d %X",time.localtime()))
結果:當前時間是 2019-10-15 21:32:41
#六、將字符串時間轉化成結構化時間用strptime:
print(time.strptime("2016:12:24:17:50:36","%Y:%m:%d:%X"))
結果:time.struct_time(tm_year=2016, tm_mon=12, tm_mday=24, tm_hour=17, tm_min=50, tm_sec=36, tm_wday=5, tm_yday=359, tm_isdst=-1)
#七、
time.asctime(結構化時間) 若是不傳參數,直接返回當前時間的格式化串
#八、
time.ctime(時間戳) 若是不傳參數,直接返回當前時間的格式化串
九、打印當前時間年月日、時分秒
print(time.strftime("%Y-%m-%d %X",time.localtime()))
結果:2019-10-16 00:19:30
datetime模塊:
打印當前時間用
datetime.now
from datetime import datetime
print(datetime.now())
結果:2019-10-16 00:29:04.837219
指定時間用datetime:
from datetime import datetime
print(datetime(2019,1,1))
結果:2019-01-01 00:00:00
時間戳轉換成對象:
from datetime import datetime
import time
print(datetime.fromtimestamp(time.time()))
結果:2019-10-16 00:39:35.281226
將對象轉換成時間戳:
from datetime import datetime
import time
print(datetime.timestamp(datetime.now()))
結果:1571157698.215962
對象轉換成字符串:
print(datetime.strftime(datetime.now(),"%Y-%m-%d %H:%M:%S"))
結果:2019-10-16 00:48:41
字符串轉換成對象:
from datetime import datetime
import time
print(datetime.strptime("2019/1/1","%Y/%m/%d")
結果:2019-01-01 00:00:00
時間相減:
from datetime import datetime
import time
print(datetime.now() -datetime(2011,1,1,12,13,14))
結果:3209 days, 12:44:27.577273
指定datetime時間用replace:
import datetime
1977-10-16 19:15:35.278185current_time = datetime.datetime.now() print(current_time.replace(year=1977)) # 直接調整到1977年
結果:
print(current_time.replace(month=1)) # 直接調整到1月份 print(current_time.replace(year=1989,month=4,day=25)) # 1989-04-25 18:49:05.898601
random隨機模塊
import random
#隨機小數
random.random() # 大於0且小於1之間的小數
結果:0.06261820639552629
random.uniform(1,3) #大於1小於3的小數
結果:1.6270147180533838
print(random.randint(1,5)) # 大於等於1且小於等於5之間的整數
結果:1
print(random.randrange(1,10,2)) # 大於等於1且小於10之間的奇數
結果:5
print(random.choice([1,'23',[4,5]]))  #隨機選擇一個返回1或者23或者[4,5]]
結果:1
print(random.sample([1,'23',[4,5]],2))#列表元素任意2個組合不會出現重複
結果:['23', [4, 5]]
lst = [1,2,3,4]
random.shuffle(lst) #打亂次序
print(lst)
結果:[3, 2, 4, 1]
os模塊
os模塊是與操做系統交互的一個接口,它提供的功能多與工做目錄,路徑,文件等相關。
#一、顯示當前目錄用getcwd
import os
# print(os.getcwd())
結果:C:\個人代碼\day15
#四、新建用makedirs
# os.makedirs("dirname1/dirname2")
# print(os.getcwd())
#五、刪除removedirs
# os.removedirs("python_s3/dirname1/dirname2")
#六、清單listdir
print(os.listdir())
#七、獲取文件目錄信息stat
print(os.stat("sss.py"))
結果:os.stat_result(st_mode=33206, st_ino=6192449487787461, st_dev=4200487114, st_nlink=1, st_uid=0, st_gid=0, st_size=42, st_atime=1571184521, st_mtime=1571184521, st_ctime=1571184521)
#八、s分隔符
print(os.sep)
#九、分割文件 路徑字符串
print(os.pathsep)
#十、name是當前文件使用的平臺
print(os.name)
#十一、system顯示當前目錄的文件信息
print(os.system("dir"))
#十二、將path分割成目錄和文件名二元組返回
print(os.path.split(r"C:\Users\zd\Desktop\python_s3\day22\sss.py"))
#1三、dirname--返回path的目錄。其實就是os.path.split(path)的第一個元素
print(os.path.dirname(r"C:\Users\zd\Desktop\python_s3\day22\sss.py"))
#1四、basename--返回path最後的文件名。如何path以/或\結尾,那麼就會返回空值,即os.path.split(path)的第二個元素。
print(os.path.basename(r"C:\Users\zd\Desktop\python_s3\day22\sss.py"))
#1五、exists判斷路徑是否存在
print(os.path.exists(r"C:\Users\zd\Desktop\python_s3\day22\sss.py"))
#1六、isabs判斷絕對路徑
print(os.path.isabs(r"C:\Users\zd\Desktop\python_s3\day22\sss.py"))
#1七、判斷path是否存在一個文件isfile
print(os.path.isfile(r"C:\Users\zd\Desktop\python_s3\day22\sss.py"))
#1八、isdir判斷path存在一個目錄
print(os.path.isdir(r"C:\Users\zd\Desktop\python_s3\day22\sss.py"))
#1九、join將路徑進行拼接
a = r"C:\users\zd"
b = "python_s3\day22\sss.py"
print(os.path.join(a,b))
結果:C:\users\zd\python_s3\day22\sss.py
#20、getatime最後存取時間
print(os.path.getatime(r"C:\Users\zd\Desktop\python_s3\day22\sss.py"))
#2一、最後修改時間
print(os.path.getmtime(r"C:\Users\zd\Desktop\python_s3\day22\sss.py"))
#2二、給文件重命名:
import os
os.rename("舊名字","新名字")
2三、刪除文件:
import os
print(os.remove(r"C:\Users\zd\Desktop\lib.py"))
2四、當前執行這個python文件的工做目錄相關的工做路徑:
2五、文件夾相關:
os.getcwd() 獲取當前工做目錄,即當前python腳本工做的目錄路徑 ** os.chdir("dirname") 改變當前腳本工做目錄;至關於shell下cd ** os.curdir 返回當前目錄: ('.') ** os.pardir 獲取當前目錄的父目錄字符串名:('..') **
os.makedirs('dirname1/dirname2') 可生成多層遞歸目錄 *** os.removedirs('dirname1') 若目錄爲空,則刪除,並遞歸到上一級目錄,如若也爲空,則刪除,依此類推 *** os.mkdir('dirname') 生成單級目錄;至關於shell中mkdir dirname *** os.rmdir('dirname') 刪除單級空目錄,若目錄不爲空則沒法刪除,報錯;至關於shell中rmdir dirname *** os.listdir('dirname') 列出指定目錄下的全部文件和子目錄,包括隱藏文件,並以列表方式打印 **
2六、文件相關:
os.remove() 刪除一個文件 *** os.rename("oldname","newname") 重命名文件/目錄 *** os.stat('path/filename') 獲取文件/目錄信息 **
2七、路徑相關:
os.path.abspath(path) 返回path規範化的絕對路徑 *** os.path.split(path) 將path分割成目錄和文件名二元組返回 *** os.path.dirname(path) 返回path的目錄。其實就是os.path.split(path)的第一個元素 ** os.path.basename(path) 返回path最後的文件名。如何path以/或\結尾,那麼就會返回空值,即os.path.split(path)的第二個元素。 ** os.path.exists(path) 若是path存在,返回True;若是path不存在,返回False *** os.path.isabs(path) 若是path是絕對路徑,返回True ** os.path.isfile(path) 若是path是一個存在的文件,返回True。不然返回False *** os.path.isdir(path) 若是path是一個存在的目錄,則返回True。不然返回False *** os.path.join(path1[, path2[, ...]]) 將多個路徑組合後返回,第一個絕對路徑以前的參數將被忽略 *** os.path.getatime(path) 返回path所指向的文件或者目錄的最後訪問時間 ** os.path.getmtime(path) 返回path所指向的文件或者目錄的最後修改時間 ** os.path.getsize(path) 返回path的大小 ***
2八、操做系統相關了解:
os.sep 輸出操做系統特定的路徑分隔符,win下爲"\\",Linux下爲"/" * os.linesep 輸出當前平臺使用的行終止符,win下爲"\t\n",Linux下爲"\n" os.pathsep 輸出用於分割文件路徑的字符串 win下爲;,Linux下爲: * os.name 輸出字符串指示當前使用平臺。win->'nt'; Linux->'posix' * # 和執行系統命令相關 os.system("bash command") 運行shell命令,直接顯示 ** os.popen("bash command).read() 運行shell命令,獲取執行結果 ** os.environ 獲取系統環境變量 **
2九、os.stat('path/filename') 獲取文件/目錄信息 的結構說明(瞭解):
stat 結構: st_mode: inode 保護模式 st_ino: inode 節點號。 st_dev: inode 駐留的設備。 st_nlink: inode 的連接數。 st_uid: 全部者的用戶ID。 st_gid: 全部者的組ID。 st_size: 普通文件以字節爲單位的大小;包含等待某些特殊文件的數據。 st_atime: 上次訪問的時間。 st_mtime: 最後一次修改的時間。 st_ctime: 由操做系統報告的"ctime"。在某些系統上(如Unix)是最新的元數據更改的時間,在其它系統上(如Windows)是建立時間(詳細信息參見平臺的文檔)。
sys模塊
import sys
#一、命令行參數列表、
print(sys.argv)
結果:['C:/個人代碼/day15/筆記.py']
#二、version獲取Python解釋器版本信息
print(sys.version)
#三、返回系統平臺名稱
print(sys.platform)
#五、sys.path--獲取模塊查找路徑:
相關文章
相關標籤/搜索