1.服務端主程序:#encoding:utf-8importthreadingfromprocedure.socket_serverimportThreadingHttpServer,MainHandlerfromprocedure.processimportmq_respond_procedurefromloggerimportlog,logwffromconfimport(HOST,PORT,MQ_A_RECV_1,MQ_A_RECV_2,MQ_A_R
系統 2019-09-27 17:47:49 1955
要爬取的網站不需要登陸,沒有反爬機制,操作很簡單首先安裝需要的程序包pipinstallrequestspipinstallbeautifulsoup4pipinstallxlwt具體的實現類GetInfo.py#信息實體類classproduct_info(object):serios=''#存放商品系列productActualPrice=''#存放商品成交價productOldPrice=''#存放商品面價detailString=''#存放商品詳情
系統 2019-09-27 17:47:27 1955
某些時候我們需要讓類動態的添加屬性或方法,比如我們在做插件時就可以采用這種方法。用一個配置文件指定需要加載的模塊,可以根據業務擴展任意加入需要的模塊。本文就此簡述了Python實現動態添加類的屬性或成員函數的解決方法,具體方法如下:首先我們可以參考ulipad的實現:mixin。這里做的比較簡單,只是聲明一個類,類初始化的時候讀取配置文件,根據配置列表加載特定目錄下的模塊下的函數,函數和模塊同名,將此函數動態加載為類的成員函數。代碼如下所示:classWi
系統 2019-09-27 17:47:25 1955
測試的過程中經常需要截取屏幕,通常的做法是使用手機自帶的截屏功能,然后將截屏文件復制出來,這種方法的優點是不需要連接數據線就可截屏,缺點則是生成的截屏文件命名是隨機命名的,復制出來也比較麻煩。另一種方法是使用PC端的手機助手類軟件。這里使用python編寫一個截屏的腳本,雙擊運行腳本就OK,截屏成功后會將截屏文件已當前時間命名,并保存在存放腳本的當前路徑的screenshot文件夾下:#!/usr/bin/envpythonimportosimportti
系統 2019-09-27 17:47:18 1955
使用裝python飾器做緩存裝飾器在之前的文章中有講過,這里主要是說了裝飾器的用法和應該怎么理解。這片文章給出一片補充:主要說在緩存方面的應用。在此之前呢,需要補充一些知識點:就是python查找變量的順序是什么?答案就是LEGB原則:也就是`Local->Enclosed->Global->Built-in`也就是先在局部作用域內(例如函數內)進行查找,然后在[閉包]1內查找,接下來分別是全局作用域和內置的保留名稱注意:閉包內的變量,不能改變,但是對于列
系統 2019-09-27 17:47:18 1955
rindex()方法返回所在的子str被找到的最后一個索引,可選擇限制搜索的字符串string[beg:end]如果沒有這樣的索引存在,拋出一個異常。語法以下是rindex()方法的語法:str.rindex(str,beg=0end=len(string))參數str--此選項指定要搜索的字符串。beg--這是開始索引,默認情況下為0len--這是最后的索引,默認情況下它等于字符串的長度。返回值此方法如果找到返回最后一個索引,否則如果沒有找到str引發一
系統 2019-09-27 17:47:10 1955
從下面字典中查找出值為數字的字符串,并顯示出對應字典的鍵名和該值dct={'Name':['Alice','1456'],'Age':['aa','5aa','345']}#取出字典的值forvalue1indct.values():#遍歷值列表forvalue2invalue1:#判斷是否為數字的字符串ifvalue2.isdigit():value=value1key=[kfor(k,v)indct.items()ifv==value]print("鍵
系統 2019-09-27 17:46:31 1955
很多時候可能需要在一個圖中畫出多條函數圖像,但是可能y軸的物理含義不一樣,或是數值范圍相差較大,此時就需要雙y軸。matplotlib和seaborn都可以畫雙y軸圖像。一個例子:importseabornassnsimportmatplotlib.pyplotasplt#ax1forKDE,ax2forCDFf,ax1=plt.subplots()ax1.grid(True)#ax1.set_ylim(0,1)ax1.set_ylabel('KDE')a
系統 2019-09-27 17:46:19 1955
前言項目中大量用到圖片加載,由于圖片太大,加載速度很慢,因此需要對文件進行統一壓縮一:導入包fromPILimportImageimportos二:獲取圖片文件的大小defget_size(file):#獲取文件大小:KBsize=os.path.getsize(file)returnsize/1024三:拼接輸出文件地址defget_outfile(infile,outfile):ifoutfile:returnoutfiledir,suffix=os.
系統 2019-09-27 17:46:02 1955
在程序運行的過程中,所有的變量都是在內存中,比如定義一個dict1={“name”:“zhangsan”,“age”:20},我們對name屬性進行修改,改"wangwu",但是一旦程序結束,變量所占用的內存就會被操作系統全部回收,如果沒有把修改后的name存儲到磁盤上,下次重新運行程序,屬性name又會被初始化為"zhangsan"。這時候就會使用到序列化與反序列化,將序列化后的內容寫入磁盤,這里會講到pickle模塊與json模塊去實現序列化與反序列化
系統 2019-09-27 17:45:52 1955