經常使用模塊
calendar
# 使用須要先導入
import calendar # calendar: 獲取一年的日曆字符串 # 參數 # w = 每一個日期之間的間隔字符數 # l = 每週所佔用的行數 # c = 每月之間的間隔字符數
cal = calendar.calendar(2017) print(type(cal)) print(cal) cal = calendar.calendar(2017, l=0, c=5) print(cal)
# isleap: 判斷某一年是否閏年
calendar.isleap(2000)
# leapdays: 獲取指定年份之間的閏年的個數
calendar.leapdays(2001, 2018)
# month() 獲取某個月的日曆字符串 # 格式:calendar.month(年,月) # 回值:月日曆的字符串
m3 = calendar.month(2018, 3) print(m3)
# monthrange() 獲取一個月的周幾開始即和天數 # 格式:calendar.monthrange(年,月) # 回值:元組(周幾開始,總天數) # 注意:周默認 0 -6 表示週一到周天
w,t = calendar.monthrange(2017, 3) print(w) print(t)
# monthcalendar() 返回一個月天天的矩陣列表 # 格式:calendar.monthcalendar(年,月) # 回值:二級列表 # 注意:矩陣中沒有天數用0表示
m = calendar.monthcalendar(2018, 3) print(type(m)) print(m)
# prmonth() 直接打印整個月的日曆 # 格式:calendar.prmonth(年,月) # 返回值:無
calendar.prmonth(2018, 3)
# weekday() 獲取周幾 # 格式:calendar.weekday(年,月,日) # 返回值:周幾對應的數字
calendar.weekday(2018, 3, 26)
time模塊
時間戳
- 一個時間表示,根據不一樣語言,能夠是整數或者浮點數 - 是從1970年1月1日0時0分0秒到如今經歷的秒數 - 若是表示的時間是1970年之前或者太遙遠的將來,可能出現異常 - 32位操做系統可以支持到2038年
UTC時間
- UTC又稱爲世界協調時間,以英國的格林尼治天文所在地區的時間做爲參考的時間,也叫作世界標準時間。 - 中國時間是 UTC+8 東八區
時間元組
- 一個包含時間內容的普通元組 索引 內容 屬性 值 0 年 tm_year 2015 1 月 tm_mon 1~12 2 日 tm_mday 1~31 3 時 tm_hour 0~23 4 分 tm_min 0~59 5 秒 tm_sec 0~61 60表示閏秒 61保留值 6 周幾 tm_wday 0~6 7 第幾天 tm_yday 1~366 8 夏令時 tm_isdst 0,1,-1(表示夏令時)
# 須要單獨導入
import time # 獲得時間戳
time.time()
# localtime, 獲得當前時間的時間結構 # 能夠經過點號操做符獲得相應的屬性元素的內容
t = time.localtime() print(t.tm_hour)
# ctime: 獲取字符串化的當前時間
t = time.ctime() print(type(t)) print(t)
# strftime:將時間元組轉化爲自定義的字符串格式
''' 格式 含義 備註 %a 本地(locale)簡化星期名稱 %A 本地完整星期名稱 %b 本地簡化月份名稱 %B 本地完整月份名稱 %c 本地相應的日期和時間表示 %d 一個月中的第幾天(01 - 31) %H 一天中的第幾個小時(24 小時制,00 - 23) %I 一天中的第幾個小時(12 小時制,01 - 12) %j 一年中的第幾天(001 - 366) %m 月份(01 - 12) %M 分鐘數(00 - 59) %p 本地 am 或者 pm 的相應符 注1 %S 秒(01 - 61) 注2 %U 一年中的星期數(00 - 53 星期天是一個星期的開始)第一個星期天以前的全部天數都放在第 0 周 注3 %w 一個星期中的第幾天(0 - 6,0 是星期天) 注3 %W 和 %U 基本相同,不一樣的是 %W 以星期一爲一個星期的開始 %x 本地相應日期 %X 本地相應時間 %y 去掉世紀的年份(00 - 99) %Y 完整的年份 %z 用 +HHMM 或 -HHMM 表示距離格林威治的時區偏移(H 表明十進制的小時數,M 表明十進制的分鐘數) %% %號自己 '''
# 把時間表示成, 2018年12月26日 21:05
t = time.localtime() ft = time.strftime("%Y年%m月%d日 %H:%M" , t) print(ft)
datetime模塊
# datetime常見屬性 # datetime.date: 一個理想和的日期,提供year, month, day屬性
dt = datetime.date(2018, 3,26) print(dt) print(dt.day) print(dt.year) print(dt.month) # datetime.time: 提供一個理想和的時間, 居於哦hour, minute,sec,microsec等內容 # datetime.datetime: 提供日期跟時間的組合 # datetime.timedelta: 提供一個時間差,時間長度
# datetime.datetime
from datetime import datetime # 經常使用類方法: # today: # now # utcnow # fromtimestamp: 從時間戳中返回本地時間
dt = datetime(2018, 12, 26) print(dt.today()) print(dt.now()) print(dt.fromtimestamp(time.time()))
# datetime.timedelta # 表示一個時間間隔
from datetime import datetime, timedelta t1 = datetime.now() print( t1.strftime("%Y-%m-%d %H:%M:%S")) # td表示以小時的時間長度
td = timedelta(hours=1) # 當前時間加上時間間隔後,把獲得的一個小時後的時間格式化輸出
print( (t1+td).strftime("%Y-%m-%d %H:%M:%S"))
os - 操做系統相關
- 跟操做系統相關,主要是文件操做
- 於系統相關的操做,主要包含在三個模塊裏
- os, 操做系統目錄相關
- os.path, 系統路徑相關操做
- shutil, 高級文件操做,目錄樹的操做,文件賦值,刪除,移動
- 路徑:
- 絕對路徑: 老是從根目錄上開始
- 相對路徑: 基本以當前環境爲開始的一個相對的地方
os 模塊
import os # getcwd() 獲取當前的工做目錄 # 格式:os.getcwd() # 返回值:當前工做目錄的字符串 # 當前工做目錄就是程序在進行文件相關操做,默認查找文件的目錄
mydir = os.getcwd() print(mydir)
# chdir() 改變當前的工做目錄 # change directory # 格式:os.chdir(路徑) # 返回值:無
os.chdir('/home/tlxy') mydir = os.getcwd() print(mydir)
# listdir() 獲取一個目錄中全部子目錄和文件的名稱列表 # 格式:os.listdir(路徑) # 返回值:全部子目錄和文件名稱的列表
ld = os.listdir() print(ld)
# makedirs() 遞歸建立文件夾 # 格式:os.makedirs(遞歸路徑) # 返回值:無 # 遞歸路徑:多個文件夾層層包含的路徑就是遞歸路徑 例如 a/b/c...
rst = os.makedirs("dana") print(rst)
#getenv() 獲取指定的系統環境變量值 # 相應的還有putenv # 格式:os.getenv('環境變量名') # 返回值:指定環境變量名對應的值
rst = os.getenv("PATH") print(rst)
# exit() 退出當前程序 # 格式:exit() # 返回值:無
值部分
- os.curdir: curretn dir,當前目錄
- os.pardir: parent dir, 父親目錄
- os.sep: 當前系統的路徑分隔符
- os.linesep: 當前系統的換行符號
- windows: "\r\n"
- unix,linux,macos: "\n"
- os.name: 當前系統名稱
- windows: nt
- mac,unix,linux: posix
os.path 模塊, 跟路徑相關的模塊
import os.path as op # abspath() 將路徑轉化爲絕對路徑 # abselute 絕對 # 格式:os.path.abspath('路徑') # 返回值:路徑的絕對路徑形式
# linux中 # . 點號,表明當前目錄 # .. 雙點,表明父目錄
absp = op.abspath(".") print(absp)
# basename() 獲取路徑中的文件名部分 # 格式:os.path.basename(路徑) # 返回值:文件名字符串
bn = op.basename("/home/tlxy") print(bn) bn = op.basename("/home/tlxy") print(bn)
# join() 將多個路徑拼合成一個路徑 # 格式:os.path.join(路徑1,路徑2....) # 返回值:組合以後的新路徑字符串
bd = "/home/tlxy" fn = "dana.haha" p = op.join(bd, fn) print(p)
# split() 將路徑切割爲文件夾部分和當前文件部分 # 格式:os.path.split(路徑) # 返回值:路徑和文件名組成的元組
t = op.split("/home/tlxy/dana.haha") print(t) d,p = op.split("/home/tlxy/dana.haha") print(d, p)
# isdir() 檢測是不是目錄 # 格式:os.path.isdir(路徑) # 返回值:布爾值
rst = op.isdir("/home/tlxy/dana.haha") rst
# exists() 檢測文件或者目錄是否存在 # 格式:os.path.exists(路徑) # 返回值:布爾值
e = op.exists("/home/tlxy/haha") e
shutil 模塊
import shutil # copy() 複製文件 # 格式:shutil.copy(來源路徑,目標路徑) # 返回值:返回目標路徑 # 拷貝的同時,能夠給文件重命名
rst = shutil.copy("/home/tlxy/dana.haha", "/home/tlxy/haha.haha") print(rst)
# copyfile()將一個文件中的內容複製到另一個文件當中 # 格式:shutil.copyfile('源路徑','目標路徑') # 返回值:無
rst = shutil.copyfile("dana.haha", "haha.haha") print(rst)
# move() 移動文件/文件夾 # 格式:shutil.move(源路徑,目標路徑) # 返回值:目標路徑!
rst = shutil.move("/home/tlxy/dana.haha", "/home/tlxy/dana") print(rst)
歸檔和壓縮
- 歸檔: 把多個文件或者文件夾合併到一個文件當中
- 壓縮: 用算法把多個文件或者文件夾無損或者有損合併到一個文件當中
# make_archive() 歸檔操做 # 格式:shutil.make_archive('歸檔以後的目錄和文件名','後綴','須要歸檔的文件夾') # 返回值:歸檔以後的地址
#help(shutil.make_archive)
# 是想獲得一個叫作tuling.zip的歸檔文件
rst = shutil.make_archive("/home/tlxy/tuling", "zip", "/home/tlxy/dana") print(rst)
# unpack_archive() 解包操做 # 格式:shutil.unpack_archive('歸檔文件地址','解包以後的地址') # 返回值:解包以後的地址
random
import random # random() 獲取0-1之間的隨機小數 # 格式:random.random() # 返回值:隨機0-1之間的小數
print(random.random())
# choice() 隨機返回序列中的某個值 # 格式:random.choice(序列) # 返回值:序列中的某個值
l = [str(i)+"haha" for i in range(10)] print(l) rst = random.choice(l) print(rst)
# shuffle() 隨機打亂列表 # 格式:random.shuffle(列表) # 返回值:打亂順序以後的列表
l1 = [i for i in range(10)] print(l1) random.shuffle(l1) print(l1)
# randint(a,b): 返回一個a到b之間的隨機整數,包含a和b
print(random.randint(0,100))