日志文件:
日志级别:
'CRITICAL': CRITICAL,
'FATAL': FATAL,
'ERROR': ERROR,
'WARN': WARNING,
'WARNING': WARNING,
'INFO': INFO,
'DEBUG': DEBUG,
'NOTSET': NOTSET,
创建一个日志:
import logging
# 1. 日志对象
logger = logging.getLogger()
# 2. 设置级别
logger.setLevel(logging.ERROR)
# 3. 创建一个handler 对象
file = 't2/log.txt'
handler = logging.FileHandler(file)
handler.setLevel(logging.ERROR)
# 4. 创建一个formatter格式对象
fmt = logging.Formatter('%(asctime)s - %(module)s - %(filename)s[%(lineno)d] - %(levelname)s:%(message)s')
handler.setFormatter(fmt)
# 5.
logger.addHandler(handler)
def func():
try:
number = int(input('请输入一个数字:'))
for i in range(number):
print('---->', i)
except:
logger.error('输入的不是一个数字!')
finally:
print('------over---------')
func()
urllib
url:
协议://存放资源的地址(域名)/具体的资源
https://bj.lianjia.com/zufang/dghfjhsjdf648.html
urllib.request 用来发出请求
urllib.parse
urllib.request.urlopen(str) --->response对象
request= urllib.request.Request(url,data,headers)
urllib.request.urlopen(request) --->response对象
从response中获取信息
response.read() ----> 字节信息
要对信息进行解码:
response.read().decode('utf-8')
import urllib.request
import urllib.parse
#三部分
获得三个,从网页的检查上找
url = 'https://bj.lianjia.com/zufang/BJ2319485348977049600.html'
header = {}
header[
'User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'
data = {}
data['nav'] = 0
data = urllib.parse.urlencode(data).encode('utf-8')
# 创建请求对象
requ
est = urllib.request.Request(url, data, header)
response = urllib.request.urlopen(request)
content = response.read()
print(content.decode('utf-8'))
chr好ord
ord输出的是字符串的ascll码
chr是把ascll码转换成字符串
'''
日历相关
'''
import calendar
print(calendar.calendar(2019))#输出2019的日历
print(calendar.month(2019, 8))#打印8月的日历
print(calendar.weekday(2019, 8, 12)) # 星期几 星期一从0开始的
datetime:模块
4个类:
date 日期
time 时间
timedelta 时间差
datetime 日期时间
print(datetime.now())#2019-08-12 19:50:54.450801
print(datetime.today())#2019-08-12 19:50:54.450801
查看版本号
>>> sys.version
'3.6.2 (v3.6.2:5fd33b5926, Jul 16 2017, 20:11:06) \n[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]'
>>> sys.version_info
sys.version_info(major=3, minor=6, micro=2, releaselevel='final', serial=0)
timedelta()#求时间差值,
dt = datetime.now()#2019-08-12
tdt = timedelta(minutes=30)
print(dt + tdt)#2019-08-12 20:22:35.440476
tdt = timedelta(days=1)
print(dt - tdt)#2019-08-11 19:52:35.440476
md5加密:
import hashlib
md5 = hashlib.md5()
s = 'hello'
md5.update(s.encode('utf-8'))#添加成utf-8格式
print(md5.hexdigest())#转换成16进制
sha1:
sha1 = hashlib.sha1(s.encode('utf-8'))
print(sha1.hexdigest())
sha256:
sha256 = hashlib.sha256(s.encode('utf-8'))
print(sha256.hexdigest())
math模块:
print(math.ceil(9.12))#取上
print(math.floor(9.89))#取下
print(math.fmod(10, 3)) # 求余数
print(math.fabs(-89))#绝对值
print(math.sqrt(16)) # sqrt(x),对x开平方
print(math.pow(2, 5)) # pow(x,y) x的y次方
sum()
abs()
round#四舍五入(4.5)四舍五入是四
os模块
os.getcwd():获取当前目录。
os.chdir(path):改变当前目录。
os.fchdir(fd):通过文件描述利改变当前目录。该函数与上一个函数的功能基本相似,只是该函数以文件描述符作为参数来代表目录
import os
获取当前目录
print(os.getcwd()) # G:\publish\codes\12.7
改变当前目录
os.chdir('../12.6')
#再次获取当前目录
print(os.getcwd()) # G:\publish\codes\12.6
os.listdir(path):返回 path 对应目录下的所有文件和子目录
os.mkdir(path):创建 path 对应的目录
创建文件:
path = 'my_dir'
直接在当前目录下创建目录
os.mkdir(path)
path = "abc/xyz/wawa"
删除:
path = 'my_dir'
# 直接删除当前目录下的子目录
os.rmdir(path)
path = "abc/xyz/wawa"
递归方法删除文件
# 也可以递归删除文件
def delAll(path):
if os.path.isdir(path):
files = os.listdir(path) # ['a.doc', 'b.xls', 'c.ppt']
# 遍历并删除文件
for file in files:
p = os.path.join(path, file)
if os.path.isdir(p):
# 递归
delAll(p)
else:
os.remove(p)
# 删除文件夹
os.rmdir(path)
else:
os.remove(path)
import os
print(os.path.abspath('t1/file01.py')) # 获取绝对路径
print(os.path.isabs('t1/file01.py')) # 判断所给的路径是否是一个绝对路径
print(os.path.isfile('t1/file01.py')) # True 判断是否是文件
print(os.path.isdir('t1/file01.py')) # False 判断是否是文件夹
print(os.path.exists('t1/file02.py')) # False 判断是否存在文件夹或者文件
print(os.path.join(r'c:\foo', 'a.txt'))#两个字符串之间加/
print(os.path.split(r'c:\foo\a.txt'))#os.path.split('C:/soft/python/test.py')
#('C:/soft/python', 'test.py')
print(os.path.getatime(r'C:\images\desk_background.jpg')) # 访问时间
print(os.path.getctime(r'C:\images\desk_background.jpg')) # 创建时间 windows
print(os.path.getmtime(r'C:\images\desk_background.jpg')) # 修改时间
随机数:
randint(a,b) --->[a,b]
randrange(a,b) ---> [a,b)
random() --->小数 [0,1)
choice()#随机选择一个
shuffle(seq) --> 打乱顺序seq的顺序