logging shutil json requests
### logging
- 日记模块,记录程序运行错误记录
import logging
from logging import handlers
import requests
#filename还是输出文件名称,when是对时间分割(多久分割一个文件输出),可以是D/H/M等,interval:是指等待多少个单位 when 的时间后,Logger会自动重建文件
file_handler = handlers.TimedRotatingFileHandler(filename="x3.log",when="D",interval=1,encoding="utf-8")
#错误信息配置
filehande = logging.basicConfig(
format = "%(asctime)s - %(name)s - %(levelname)s - %(module)s: %(message)s",
datefmt="%Y-%m-%d %H:%M:%S:%p",
handlers=[file_handler,],
level=logging.ERROR #报告等级设置,可以是INFO,DEBUG,ERROR,WAINING等
)
try:
requests.get("http://www.google.com")
except Exception as e:
msg = str(e) #把报错的转换位字符串
logging.error(msg,exc_info=True) #这里的exc_info=True是位了显示报告中出错的位
结果:
输出一个x3.log的文件,根据wen的设置会对文件分割,并且有有时间
## shutil
### shutil.rmtree()
- 删除整个文件夹,包括文件夹里面的文件
import shutil
folder_path = r"E:\aaa\bbb\ccc"
shutil.rmtree(folder_path)
### shutil.copy(src,dst)
- 复制文件,必须是文件
import shutil
old_path = r"G:\a\a1.txt"
new_path = r"E:"
print(new_path)
shutil.copy(old_path,new_path)
结果:在E盘复制出一个a1.txt文件
### shutil.copytree(src,dst)
- 复制整个文件夹,必须是文件夹
import shutil
folder_oldpath = r"E:\a"
folder_newpath = r"E:\g"
shutil.copytree(folder_oldpath,folder_newpath)
结果:在E盘复制出一个文件夹g,里面的文件就是a里面的文件
### shutil.move(src,dst)
- 更改文件或者文件名
import shutil
old_path = r"G:\b"
new_path = r"G:\c"
print(new_path)
shutil.move(old_path,new_path)
结果:把G盘的文件夹b名字改成c
例2:
import shutil
old_path = r"G:\b\1.txt"
new_path = r"G:\b\2.txt"
print(new_path)
shutil.move(old_path,new_path)
结果:把G盘文件夹b内的1.txt文件改位2.txt
### shutil.make_archive(压缩后的文件目录,format="zip",要压缩的文件目录)
- shutil.make_archive("G:\zzh",format="zip",root_dir=r"G:\a")文件压缩,可以压缩成“zip”, “tar”, “bztar”,“gztar格式
import shutil
shutil.make_archive("G:\zzh",format="zip",root_dir=r"G:\a")
结果:把G盘的a文件夹压缩成zzh.zip文件保存在G盘中
例2:
import shutil
in_path = r"G:\a" #要压缩的文件夹目录
print(in_path)
out_path = r"G:\xxh" #压缩后的文件
print(out_path)
shutil.make_archive(out_path,format="zip",root_dir=in_path)
结果:把G盘的a文件夹压缩成zzx.zip文件保存在G盘中
### shutil.unpack_archive(需要解压的文件路径
,解压后的文件路径,format="zip")
- 解压shutil.unpack_archive(r"G:\nginx-1.13.9.zip",extract_dir=r"G:\bbb",format="zip")
import shutil
in_path = r"G:\nginx-1.13.9.zip" #要解压的zip文件路径
print(in_path)
out_path = r"G:\ccc" #解压后的文件路径
print(out_path)
shutil.unpack_archive(in_path,extract_dir=out_path,format="zip")
结果:
把G盘nginx-1.13.9压缩文件解压到ccc的文件夹中
## 第三方模块
### json
- dumps(object)
- 将python的变量序列化转换成Json用的字符串,并返回值,json字符串没有元组,集合,字符串只能用双引号,python对象里面如果有元组,转换成Json字符串后会变成列表
#将python的变量序列化成json用的字符串,注意字符串只能是双引号,有中文要设置,ensure_ascii =False
x1 = ['我',1,{'姓名':"林明均","年龄":10},(1,"年级")]
print(type(x1))
x2 = json.dumps(x1,ensure_ascii =False)
print(x2)
print(type(x2))
结果:
<class 'list'>
["我", 1, {"姓名": "林明均", "年龄": 10}, [1, "年级"]]
<class 'str'>
- loads(object)
- 将Json的字符串,字符串反序列化换成python所用的变量,json字符串构成一定要用中括号[],或者大括号{}包住
x1 = '["我",1,{"姓名":"林明均","年龄":10}]'
print(x1,type(x1))
x2 = json.loads(x1)
print(x2,type(x2))
结果:
["我",1,{"姓名":"林明均","年龄":10}] <class 'str'>
['我', 1, {'姓名': '林明均', '年龄': 10}] <class 'list'>
- dump(object,f)把python的变量序列化成Json字符串写入文件
x1 = ['我',1,{'姓名':"林明均","年龄":10},(1,"年级")]
with open('json_test1.txt', 'w',encoding="utf-8") as f:
json.dump(x1, f)
- load(f)将文件里面的json格式的字符串读出来反序列化成python的变量
#json_test1.txt的文件是字符串['我', 1, {'姓名': '林明均', '年龄': 10}, [1, '年级']]
with open("json_test1.txt","r") as f:
data = json.load(f)
print(data,type(data))
结果:
['我', 1, {'姓名': '林明均', '年龄': 10}, [1, '年级']] <class 'list'>
### requests
- get("url")
- 获取网页的信息,返回值,用R.text获取信息,R.status_code获取网页状态
R = requests.get("https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&ch=1&tn=78040160_26_pg&wd=python%20requests%E5%BA%94%E7%94%A8%E5%87%BD%E6%95%B0&fenlei=256&oq=python%2520%25E6%2580%258E%25E4%25B9%2588%25E5%2588%25A4%25E6%2596%25AD%25E8%25BE%2593%25E5%2585%25A5%25E6%2598%25AF%25E5%2590%25A6%25E4%25B8%25BA%25E7%25A9%25BA&rsv_pq=b52759d40010967c&rsv_t=a816wLPlpl2wzOoBXE%2FVV00TnSk418FxzUNpnRysCSmWrcobNQA0CWGugeGDXCVFY7EfqPE&rqlang=cn&rsv_enter=1&rsv_dl=tb&rsv_btype=t&inputT=989527&rsv_sug3=114&rsv_sug1=97&rsv_sug7=101&rsv_sug2=0&rsv_sug4=990406")
print(R.text) #获取网页返回来的信息
print(R.status_code) #获取网页返回的状态
- post("url",data)
- 向网页提交post请求
- put("url",data)
- 向网页提交put请求
- head("url")
- 获取网页头信息(head部分)
### range(start,stop ,step)
- 按循序生成整数
#生成整数,参数可是负值,STEP可以是负值,参数可以只是一个整数
for item in range(0,10,2):
print(item)
结果:
0
2
4
6
8
列2:
for item in range(10):
print(item)
结果:
0
1
2
3
4
5
6
7
8
9
列3:
for item in range(-8,-2,2):
print(item,end=" ")
结果:
-8 -6 -4
浙公网安备 33010602011771号