第三方庫之xlutils、xlrd、openpyxl、schedule、requests
阿新 • • 發佈:2021-06-16
1.xlutils、xlrd用來修改excel
import xlrd from xlutils import copy book = xlrd.open_workbook("test.xls") new_book = copy.copy(book) sheet = new_book.get_sheet(0) sheet.write(0,0,"編號") sheet.write(0,1,"名字") new_book.save("test.xls")
2.openpyxl 是用於讀取和寫入 Excel 2010 xlsx / xlsm / xltx / xltm 檔案的 Python 庫。
import openpyxl book = openpyxl.load_workbook("test2.xlsx") #load_workbook()方法開啟檔案。 sheet = book["Sheet1"] print(book.sheetnames) #所有sheet頁的名字 print(sheet.max_row) #多少行 print(sheet.max_column) #多少列 sheet.cell(1,1).value = "id" #修改某個元素的值 print(dir(sheet)) print(sheet["A1"].value) print(sheet["A2"].value) sheet["A1"] = "編號" #修改欄位名 book.save("test2.xlsx") #儲存檔案
3.schedule用來進行定時任務的管理
import schedule import time def test(): print("I'm working...") def test2(): print("I'm working... in job2") # 每10分鐘執行一次job函式 schedule.every(10).minutes.do(test) # 每10秒執行一次job函式 schedule.every(10).seconds.do(test) # 當every()沒引數時預設是1小時/分鐘/秒執行一次job函式 schedule.every().hour.do(test) schedule.every().day.at("10:30").do(test) schedule.every().monday.do(test) # 具體某一天某個時刻執行一次job函式 schedule.every().wednesday.at("13:15").do(test) # 可以同時定時執行多個任務,但是每個任務是按順序執行 schedule.every(10).seconds.do(job2) # 如果job函式有有引數時,這麼寫 schedule.every(10).seconds.do(job,"引數") while True: # 啟動服務 schedule.run_pending() time.sleep(1)
4.yamail用來發送郵件
import yamail username = "input username " password = "input password " host = "smtp.qq.com" #qq # host = "smtp.163.com" #163 # host = "smtp.126.com" #qq smtp = yamail.SMTP(host=host,user=username,password=password) # smtp.send(to="this is email") smtp.send( to=["this is email","this is email"], cc=["this is email","this is email"], subject="課後好好學習", contents="下課之後先吃飯,吃完飯明天好好學習。", attachments=["a.jpg","a.xls"] )
5.urllib處理請求
from urllib.request import urlopen from urllib.parse import urlencode,urljoin,quote,quote_plus,unquote,unquote_plus # host = "http://api.nnzhp.cn/?stu_name=小黑" # print(quote_plus(host)) #url編碼 # print(quote(host)) url = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=2&tn=baiduhome_pg&wd=%E4%BD%A0%E5%A5%BD%E6%96%BD%E5%B7%A5%E9%98%9F&rsv_spt=1&oq=sdgsdsdg&rsv_pq=cbca1b490021d566&rsv_t=83a3dvr2MgkSUHYndjTkUaly8mj0O2gEaU6FiQmNXisrrzrJ0W3nU6KvAPnPtdK%2FyfiU&rqlang=cn&rsv_enter=1&rsv_dl=tb&rsv_sug3=23&rsv_sug1=10&rsv_sug7=101&rsv_sug2=0&rsv_btype=t&inputT=4151&rsv_sug4=4151" # url = urljoin(host,'/api/login') print(unquote(url)) print(unquote_plus(url)) # url = "http://api.nnzhp.cn/api/user/stu_info" data = {"stu_name":"xiaohei","age":18} # print(urlencode(data)) # # req = urlopen(url,urlencode(data).encode() ) #post請求 # req = urlopen(url+'?'+urlencode(data)) # print(req.read().decode())
6.requests處理網路請求
import requests #-------------------get請求---------------- # url = "http://api.nnzhp.cn/api/user/stu_info" # data = {"stu_name":"小"} # req = requests.get(url,data) #-------------------post請求---------------- # url = "http://api.nnzhp.cn/api/user/login" # data = {"username":"niuhanyang","passwd":"aA123456"} # data2 = {"version":1} # req = requests.post(url,params=data2,data=data) # print(req.url) #檢視請求發出去的url #http://api.nnzhp.cn/api/user/login?version=1 #params引數是在url裡面的 #data引數是在body裡面的 # url = "http://api.nnzhp.cn/api/user/add_stu" # data = { # "grade": "飛馬座", # "phone": "22345678992", # "name":"哈哈哈哈" # } # req = requests.post(url,json=data) # url = "https://qun.qq.com/cgi-bin/qun_mgr/search_group_members" # data = { # "gc": '' , # "st": "21", # "end": "41", # "sort": 0, # "bkn": "" # } # cookie = {'':''} #'cookie中值寫成key:value形式 #req = requests.post(url,data,cookies=cookie) url = "https://qun.qq.com/cgi-bin/qun_mgr/search_group_members" data = { "gc": 180208520, "st": "21", "end": "41", "sort": 0, "bkn": "1391997515" } header = { "cookie":"RK=XYYhgDpPfy; ptcz=a5b23b4f93bc2f304119957286b77b21be95814358d482ef0a2bf216733e57ba; pgv_pvid=5931324545; uin=o0511402865; skey=@HHempil2m; p_uin=o0511402865; pt4_token=tkeLBl-znMjpBJxIv1Chj*kLx7p0dsh4BkZfF39cpDk_; p_skey=OS7gS9Zw8*r*aIpqd5-S5BUo65EJMNWRkLLMO1Vpu5o_; traceid=5b35fe5632", "user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" } req = requests.post(url,data,headers=header) result=req.json() print(result) # url = "http://api.nnzhp.cn/api/file/file_upload" # data = {"file":open("a.xls",'rb')} # req = requests.post(url,files=data) # print(req.json()) #返回字典,如果介面返回的不是json,那會報錯 # url = "http://aliimg.changba.com/cache/photo/941190975_200_200.jpg" # # req = requests.get(url,verify=False) # # with open("a.jpg",'wb') as fw: # fw.write(req.content) # print(req.json()) # print(req.text) #返回的是字串 # print(req.content) #返回的是bytes的,包括圖片,媒體等等 # print(req.status_code) #返回的狀態碼 # print(req.cookies) #返回的cookie # print(req.headers) #返回的header