Day15,時間日期模塊,異常,csv文件操作,StringIO和BytesIO
一、時間日期模塊
1. datetime模塊
1)四個核心模塊
datetime.date:表示日期的類datetime.datetime:表示日期時間的類datetime.time:表示時間的類datetime.timedelta:表示時間間隔,即兩個時間點的間隔
2)date核心功能
date(year,month,day): 返回date類對象fromtimestamp(時間戳): 返回date類對象replace(year,month,day): 替換給定日期,返回一個新的date對象strftime(format): 把日期轉成format格式的字元串timetuple(): 返回time.struct_time時間元組對象weekday() : 返回星期數值
3)datetime核心功能
datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])now() # 返回當前日期和時間now().date() # 返回當前日期now().time() #返回當前時間fromtimestamp(時間戳) # 返回指定時間戳的datetime對象replace(year,month,day,hour,minute,second) # 替換新的日期和時間,返回datetime對象strftime(format) # 轉成format格式的字元串strptime(datetime_str, format) # 將日期格式的字元串轉成datetime對象
4)time核心功能
time(hour,minute,second[,microsecond,tzoninfo]) # 返回time類對象replace() # 替換時間,並返回新的time對象strftime(format) # 按format格式轉成字元串
5)timedelta核心功能
兩個datetime相減後的類對象seconds:相差的秒數days:相關的天數
2. calendar模塊
# 列印字元類型的月曆calendar(year,w=2,l=1,c=6) # 顯示某年的全部月曆,w為天的間隔距離,l為行間隔距離,c為每個月間隔距離prcal(year,w=2,l=1,c=6) # 等同於print(calendar(year,w=2,l=1,c=6))month(2017,3,w=4,l=2) # 顯示2017年3月的月曆,w每周的寬度, l每行的高度prmonth(year,month,w=2,l=1) # 等同於print(month(year,month,w,l))isleap(year) # 是閏年返回True,否則為falseleapdays(2018,2022) # 返回給定兩個年之間潤年monthrange(year,month) # 返回某一月截止到哪一天weekday(year,month,day) # 顯示給定日期是周幾# 星期:0(星期一)到6(星期日)# 月份: 1(一月) 到 12(12月)
二、異常
Python中異常類最頂層的父類是BaseException
常見的異常類:
自定義異常:
def addSalary(salary): if salary <= 0: raise Exception(不能小於0) print(OK)if __name__ == __main__: try: addSalary(-100) except Exception as e: print(e)
三、csv文件操作
import csv# 寫操作with open(eggs.csv, a, newline=) as csvfile: writer = csv.writer(csvfile, delimiter=;,quotechar=|, quoting=csv.QUOTE_MINIMAL) writer.writerow([Tome] * 5 + [End Tom]) writer.writerow([Python, H5, Java])# 讀操作with open(names.csv, r, encoding=utf-8) as f: reader = csv.reader(f, excel, delimiter=";", quoting=csv.QUOTE_MINIMAL) for row in reader: print(row)# 字典操作import csvwith open(names.csv) as csvfile: reader = csv.DictReader(csvfile) for row in reader: print(row[first_name], row[last_name]) with open(names.csv, w) as csvfile: fieldnames = [first_name, last_name] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() writer.writerow({first_name: Baked, last_name: Beans}) writer.writerow({first_name: Lovely, last_name: Spam}) writer.writerow({first_name: Wonderful, last_name: Spam})
四、StringIO和BytesIO
# 主要用於緩衝操作StringIO 字元緩衝BytesIO 位元組緩衝from os import StringIO, BytesIOstringio = StringIO()stringio.write(hello
)stringio.write(byte)print(stringio.getvalue())
五、作業
1. 實現用戶註冊時,使用手機號和驗證碼
推薦閱讀:
※如何將多維list降到一維,使用環境為python3?
※哪些庫是 Python2 獨有而 Python3 暫時不支持的?
※Python3.5.1(64位)安裝beautifulsoup4.4.1不成功怎麼回事?
※python對變數賦值為什麼會出現以下的情況?
※為何我用sublime text3編譯python turtle畫圖後窗口自動關閉?