Time of Update: 2016-06-10
本文執行個體講述了python使用any判斷一個對象是否為空白的方法。分享給大家供大家參考。具體實現代碼如下:複製代碼 代碼如下:>>> eth = {"eth0″:"192.168.1.1″}>>> any(eth)True>>> eth = {}>>> any(eth)False判斷list是否為空白傳統的方式:複製代碼 代碼如下:if len(mylist): # Do something with my listelse: # The list is empty由於一個空
Time of Update: 2016-06-10
一、多線程同步由於CPython的python解譯器在單線程模式下執行,所以導致python的多線程在很多的時候並不能很好地發揮多核cpu的資源。大部分情況都推薦使用多進程。python的多線程的同步與其他語言基本相同,主要包含:Lock & RLock :用來確保多線程多共用資源的訪問。Semaphore : 用來確保一定資源多線程訪問時的上限,例如資源集區。 Event : 是最簡單的線程間通訊的方式,一個線程可以發送訊號,其他的線程接收到訊號後執行操作。 二、執行個體1)Lock &
Time of Update: 2016-06-10
本文執行個體講述了python統計一個文本中重複行數的方法。分享給大家供大家參考。具體實現方法如下:比如有下面一個檔案2312我們期望得到2,23,11,1解決問題的思路:出現的文本作為key, 出現的數目作為value,然後按照value排除後輸出最好按照value從大到小輸出出來,可以參照:複製代碼 代碼如下:in recent Python 2.7, we have new OrderedDict type, which remembers the order in which the
Time of Update: 2016-06-10
本文執行個體講述了python中urllib模組用法。分享給大家供大家參考。具體分析如下:一、問題:近期公司項目的需求是根據客戶提供的api,我們定時去擷取資料, 之前的方案是用php收集任務存入到redis隊列,然後在linux下做一個常駐進程跑某一個php檔案, 該php檔案就一個無限迴圈,判斷redis隊列,有就執行,沒有就break.二、解決方案:最近剛好學了一下python, python的urllib模組或許比php的curl更快,而且簡單. 貼一下代碼複製代碼 代碼如下:#_*_
Time of Update: 2016-06-10
一、python多線程因為CPython的實現使用了Global Interpereter
Time of Update: 2016-06-10
下載8000首兒歌的python的代碼:複製代碼 代碼如下:#-*- coding: UTF-8 -*-from pyquery import PyQuery as pyfrom lxml import etreeimport urllibimport reimport osimport sysimport loggingdef format(filename): tuple=(' ',''','\'') for char in tuple: if (filename.
Time of Update: 2016-06-10
python引用變數的順序: 當前範圍局部變數->外層範圍變數->當前模組中的全域變數->python內建變數一、globalglobal關鍵字用來在函數或其他局部範圍中使用全域變數。但是如果不修改全域變數也可以不使用global關鍵字。複製代碼 代碼如下:gcount = 0def global_test(): print (gcount) def global_counter(): global gcount gcount +=1 return gcount
Time of Update: 2016-06-10
Python list內建sort()方法用來排序,也可以用python內建的全域sorted()方法來對可迭代的序列排序產生新的序列。1)排序基礎簡單的升序排序是非常容易的。只需要調用sorted()方法。它返回一個新的list,新的list的元素基於小於運算子(__lt__)來排序。複製代碼 代碼如下:>>> sorted([5, 2, 3, 1, 4])[1, 2, 3, 4, 5]
Time of Update: 2016-06-10
代碼: (使用os.listdir) 複製代碼 代碼如下:import osdef ListFilesToTxt(dir,file,wildcard,recursion): exts = wildcard.split(" ") files = os.listdir(dir) for name in files: fullname=os.path.join(dir,name) if(os.path.isdir(fullname) &
Time of Update: 2016-06-10
Python內建一個輕量級的關係型資料庫SQLite。這一資料庫使用SQL語言。SQLite作為後端資料庫,可以搭配Python建網站,或者製作有資料存放區需求的工具。SQLite還在其它領域有廣泛的應用,比如HTML5和移動端。Python標準庫中的sqlite3提供該資料庫的介面。我將建立一個簡單的關係型資料庫,為一個書店儲存書的分類和價格。資料庫中包含兩個表:category用於記錄分類,book用於記錄某個書的資訊。一本書歸屬於某一個分類,因此book有一個外鍵(foreign key)
Time of Update: 2016-06-10
一、簡單使用複製代碼 代碼如下:def TestLogBasic(): import logging logging.basicConfig(filename = 'log.txt', filemode = 'a', level = logging.NOTSET, format = '%(asctime)s - %(levelname)s: %(message)s') logging.debug('this is a message')
Time of Update: 2016-06-10
在初步瞭解Python多進程之後,我們可以繼續探索multiprocessing包中更加進階的工具。這些工具可以讓我們更加便利地實現多進程。進程池進程池 (Process Pool)可以建立多個進程。這些進程就像是隨時待命計程車兵,準備執行任務(程式)。一個進程池中可以容納多個待命計程車兵。“三個進程的進程池”比如下面的程式:複製代碼 代碼如下:import multiprocessing as muldef f(x): return x**2pool = mul.Pool(5)rel
Time of Update: 2016-06-10
之前有寫利用md5方式來做差異備份,但是這種md5方式來寫存在以下問題:•md5sum擷取有些軟串連的MD5值存在問題 •不支援對空目錄進行備份,因為md5sum無法擷取空目錄的md5值 •許可權的修改md5sum無法判斷 解決方案:利用檔案的mtime ctimemtime(Modified time)是在寫入檔案時隨檔案內容的更改而更改的ctime(Create
Time of Update: 2016-06-10
在上一講中已經串連了資料庫。就資料庫而言,串連之後就要對其操作。但是,目前那個名字叫做qiwsirtest的資料僅僅是空架子,沒有什麼可操作的,要操作它,就必須在裡面建立“表”,什麼是資料庫的表呢?下面摘抄字維基百科對資料庫表的簡要解釋,要想詳細瞭解,需要看官在找一些有關資料庫的教程和書籍來看看。在關聯式資料庫中,資料庫表是一系列二維數組的集合,用來代表和儲存資料對象之間的關係。它由縱向的列和橫向的行組成,例如一個有關作者資訊的名為 authors
Time of Update: 2016-06-10
os.getcwd() 擷取當前工作目錄,即當前python指令碼工作的目錄路徑 os.chdir("dirname") 改變當前指令碼工作目錄;相當於shell下cdos.curdir 返回目前的目錄: ('.')os.pardir 擷取目前的目錄的父目錄字元串名:('..')os.makedirs('dirname1/dirname2') 可產生多層遞迴目錄os.removedirs('dirname1')
Time of Update: 2016-06-10
Python內建了一些非常有趣、有用的函數,如:filter、map、reduce,都是對一個集合進行處理,filter很容易理解用於過濾,map用於映射,reduce用于歸並. 是Python列表方法的三架馬車。1. filter函數的功能相當於過濾器。調用一個布爾函數bool_func來迭代遍曆每個seq中的元素;返回一個使bool_seq傳回值為true的元素的序列。>>> N=range(10)>>> print filter(lambda x:x>5,N)[6, 7, 8, 9]2.
Time of Update: 2016-06-10
Python中逸出字元Regex使用反斜線” \ “來代表特殊形式或用作逸出字元,這裡跟Python的文法衝突,因此,Python用” \\\\ “表示Regex中的” \ “,因為Regex中如果要匹配” \ “,需要用\來轉義,變成” \\ “,而Python文法中又需要對字串中每一個\進行轉義,所以就變成了” \\\\ “。上面的寫法是不是覺得很麻煩,為了使Regex具有更好的可讀性,Python特別設計了原始字串(raw
Time of Update: 2016-06-10
最近我用Python做了一個國際象棋程式並把代碼發布在Github上了。這個代碼不到1000行,大概20%用來實現AI。在這篇文章中我會介紹這個AI如何工作,每一個部分做什麼,它為什麼能那樣工作起來。你可以直接通讀本文,或者去下載代碼,邊讀邊看代碼。雖然去看看其他檔案中有什麼AI依賴的類也可能有協助,但是AI部分全都在AI.py檔案中。AI
Time of Update: 2016-06-10
一、vim python自動補全外掛程式:pydiction 可以實現下面python代碼的自動補全:1.簡單python關鍵詞補全 2.python 函數補全帶括弧 3.python 模組補全 4.python 模組內函數,變數補全 5.from module import sub-module
Time of Update: 2016-06-10
最近遇到一個問題,是指定參數來運行某個特定的進程,這很類似Linux中一些命令的參數了,比如ls -a,為什麼加上-a選項會響應。optparse模組實現的也是類似的功能,它是為指令碼傳遞命令參數。使用此模組前,首先需要匯入模組中的類OptionParser,然後建立它的一個執行個體(對象):複製代碼 代碼如下:from optparse import OptionParserparser = OptionParser()