由于工作的需求,需要用python做一個類似網絡爬蟲的采集器。雖然Python的urllib模塊提供更加方便簡潔操作,但是涉及到一些底層的需求,如手動設定User-Agent,Referer等,所以選擇了直接用socket進行設計。當然,這樣的話,需要對HTTP協議比較熟悉,HTTP協議這里就不做講解了。整個python的代碼如下:#!/usr/binenvpythonimportsockethost="www.baidu.com"se=socket.so
系統 2019-09-27 17:52:30 1954
對一名開發者來說最糟糕的情況,莫過于要弄清楚一個不熟悉的應用為何不工作。有時候,你甚至不知道系統運行,是否跟原始設計一致。在線運行的應用就是黑盒子,需要被跟蹤監控。最簡單也最重要的方式就是記錄日志。記錄日志允許我們在開發軟件的同時,讓程序在系統運行時發出信息,這些信息對于我們和系統管理員來說都是有用的。就像為將來的程序員寫代碼文檔一樣,我們應該讓新軟件產生足夠的日志供系統的開發者和管理員使用。日志是關于應用運行狀態的系統文件的關鍵部分。給軟件加日志產生句時
系統 2019-09-27 17:52:07 1954
目錄python協程詳解一、什么是協程二、了解協程的過程1、yield工作原理2、預激協程的裝飾器3、終止協程和異常處理4、讓協程返回值5、yieldfrom的使用6、yieldfrom的意義三、greenlet的使用四、gevent的使用python協程詳解一、什么是協程協程又稱為微線程,協程是一種用戶態的輕量級線程協程擁有自己的寄存器和棧。協程調度切換的時候,將寄存器上下文和棧都保存到其他地方,在切換回來的時候,恢復到先前保存的寄存器上下文和棧,因此:
系統 2019-09-27 17:51:34 1954
這個問題非常非常重要,搞了一晚上都沒解決好,但是真的很簡單很簡單,如果你也是用的numpyarray,如果你也想得到輸出矩陣的全部內容,而不是省略形式,[[0.102849430.09599310.00076021...,-0.010357750.025619380.09741836][-0.01446581-0.0427694-0.08351202...,0.024896150.05786737-0.01584686][-0.05037935-0.074
系統 2019-09-27 17:51:32 1954
考慮這種情況:如果一個線程遇到鎖嵌套的情況該怎么辦,這個嵌套是指當我一個線程在獲取臨界資源時,又需要再次獲取。根據這種情況,代碼如下:復制代碼代碼如下:'''Createdon2012-9-8@author:walfred@module:thread.ThreadTest6'''importthreadingimporttimecounter=0mutex=threading.Lock()classMyThread(threading.Thread):de
系統 2019-09-27 17:50:55 1954
#/usr/bin/envpython#coding:utf-8#進程檢測程序importosimportpsutilimportdatetime#獲取用戶輸入的PID#獲取pid對應的應用名p=psutil.Process(os.getpid())print('Processname:%s'%p.name())#獲取進程bin路徑print('Processbinpath:%s'%p.exe())#獲取pid對應的路徑print('Processpath
系統 2019-09-27 17:50:43 1954
書接上回,我們繼續來說說python的面試題,我在各個網站搜集了一些,我給予你們一個推薦的答案,你們可以組織成自己的語言來說出來,讓我們更好的做到面向工資編程一、Q:說說你對zenofpython的理解,你有什么辦法看到它。A:TheZenofPython是Python語言的指導原則,遵循這些基本原則,輸入importthis,然后直接運行即可二、Q:什么是元類(meta_class)A:我們定義類來創建對象,但是現在我們知道類也是對象。那么是通過什么來創
系統 2019-09-27 17:50:41 1954
python多線程#創建線程threading_list=[]t1=threading.Thread(target=music,args=(u'愛情買賣',))threading_list.append(t1)t2=threading.Thread(target=move,args=(u'阿凡達',))threading_list.append(t2)fortinthreading_list:#啟動線程t.setDaemon(True)#將線程聲明為守護線
系統 2019-09-27 17:50:32 1954
使用python腳本備份zk中的配置python備份代碼python3back.pyimportosimportos.pathfromkazoo.clientimportKazooClientfromkazoo.clientimportKazooStatezk=KazooClient('test:2181')zk.start()zkBashPath="/conf/base/"backUp_path="/tmp/test/"cs=zk.get_childre
系統 2019-09-27 17:50:23 1954
如下所示:#!/usr/bin/envpython3#-*-coding:utf-8-*-importsqlite3conn=sqlite3.connect('test.db')#創建一個Cursor:cursor=conn.cursor()#查詢記錄:conn=sqlite3.connect('calendar.db')cursor=conn.cursor()#執行查詢語句:cursor.execute('select*fromperpetualCale
系統 2019-09-27 17:50:18 1954