Time of Update: 2016-10-18
作為一個概念而言,Regex對於Python來說並不是專屬的。但是,Python中的Regex在實際使用過程中還是有一些細小的差別。本文是一系列關於PythonRegex文章的其中一部分。在這個系列的第一篇文章中,我們將重點討論如何使用Python中的Regex並突出Python中一些專屬的特性。我們將介紹Python中對字串進行搜尋和尋找的一些方法。然後我們講討論如何使用分組來處理我們尋找到的匹配對象的子項。我們有興趣使用的Python中Regex的模組通常叫做‘re'。>>>
Time of Update: 2016-10-18
一個簡易的日誌監控的指令碼,功能如下:1.windows環境2.當匹配日誌關鍵字時會發出聲音,匹配的關鍵字不同,播放的聲音不同3.能做到即時響應注意:是在win環境下哦直接上代碼吧#!/usr/bin/env python# encoding: utf-8 """MonitorLog.py Usage: MonitorLog.py ...Monitor the log file -f log file-h help info python MonitorLog.py -f
Time of Update: 2016-10-18
1.readline 情境f0=file("readline.txt",r)while true for line in f0.readline()if not line: breakpass #do something readline 的用法,速度是fileinput的3倍左右,每秒3-4萬行,好處是 一行行讀 ,不佔記憶體,適合處理比較大的檔案,比如超過記憶體大小的檔案2.readlines 情境f1=open("readline.txt","r")for line in f1.
Time of Update: 2016-10-18
解包就是把序列或映射中每個元素單獨提取出來,序列解包的一種簡單用法就是把首個或前幾個元素與後面幾個元素分別提取出來,例如:first, seconde, *rest = sequence如果sequence裡至少有三個元素,那麼執行完上述代碼後,first == sequence[0], second == sequence[0], rest == sequence[2:]。函數接收不確定參數當函數的參數不確定時,可以使用*args 和**kwargs,*args
Time of Update: 2016-10-18
for e in collections: pass在for 迴圈裡, 最後一個對象e一直存在在上下文中。就是在迴圈外面,接下來對e的引用仍然有效。這裡有個問題容易被忽略,如果在迴圈之前已經有一個同名對象存在,這個對象是被覆蓋的。如果在有代碼感知的IDE中, IDE會提示變數是“被重新聲明的”, 但運行時卻不會出錯。 for迴圈不是閉包,可以使用dis模組分解以下代碼可以看到:x = 5for x in range(10): passprint
Time of Update: 2016-10-18
總結了一下常見集中排序的演算法歸併排序歸併排序也稱合并排序,是分治法的典型應用。分治思想是將每個問題分解成個個小問題,將每個小問題解決,然後合并。具體的歸併排序就是,將一組無序數按n/2遞迴分解成只有一個元素的子項,一個元素就是已經排好序的了。然後將這些有序的子項目進行合并。合并的過程就是 對 兩個已經排好序的子序列,先選取兩個子序列中最小的元素進行比較,選取兩個元素中最小的那個子序列並將其從子序列中去掉添加到最終的結果集中,直到兩個子序列歸併完成。代碼如下:#!/usr/bin/python
Time of Update: 2016-10-18
1.基本的讀取設定檔-read(filename) 直接讀取ini檔案內容-sections() 得到所有的section,並以列表的形式返回-options(section) 得到該section的所有option-items(section) 得到該section的所有索引值對-get(section,option) 得到section中option的值,返回為string類型-getint(section,option)
Time of Update: 2016-10-18
urllib2是Python的一個擷取URLs(Uniform Resource
Time of Update: 2016-10-18
目前我使用到的python中執行cmd的方式有三種:1. 使用os.system("cmd")特點是執行的時候程式會打出cmd在linux上執行的資訊。import osos.system("ls") 2. 使用Popen模組產生新的process現在大部分人都喜歡使用Popen。Popen方法不會列印出cmd在linux上執行的資訊。的確,Popen非常強大,支援多種參數和模式。使用前需要from subprocess import Popen,
Time of Update: 2016-10-18
寫代碼其實是需要規範的,團隊中更是如此;不然 Google 也不會發布各種編碼規範,耳熟能詳的有Google C++ 風格指南,Google Python 風格指南,等等。這些規範有用嗎?有用也沒用,除非你腦子好使,一邊 coding,一邊將規範運用的發紫;否則我們終須還是需要一種工具來做這件事情。好在python 不止一種工具幫我們做這件事。話休絮煩,切正題。Pylint使用過,變態到發紫;不知道誰那麼無聊,將規則定的那麼死,我們 pythoner 能快樂嗎?乃們不見 rubyer,Matz
Time of Update: 2016-10-18
1.擷取目前時間的兩種方法:import datetime,timenow = time.strftime("%Y-%m-%d %H:%M:%S")print nownow = datetime.datetime.now()print now2.擷取上個月最後一天的日期(本月的第一天減去1天)last =
Time of Update: 2016-10-18
yield的英文單詞意思是生產,剛接觸Python的時候感到非常困惑,一直沒弄明白yield的用法。只是粗略的知道yield可以用來為一個函數傳回值塞資料,比如下面的例子:def addlist(alist): for i in alist: yield i + 1 取出alist的每一項,然後把i + 1塞進去。然後通過調用取出每一項:alist = [1, 2, 3, 4]for x in addlist(alist): print x,
Time of Update: 2016-10-18
看到Python中有個函數名比較奇特,__init__我知道加底線的函數會自動運行,但是不知道它存在的具體意義..今天看到>第11章 物件導向的編程,中這樣介紹它:"給C++/Java/C#程式員的注釋Python中所有的類成員(包括資料成員)都是 公用的 ,所有的方法都是 有效 。只有一個例外:如果你使用的資料成員名稱以 雙底線首碼
Time of Update: 2016-10-17
Python的名字綁定在Python中,對象是通過名字進行關聯和引用的。Python通過名字綁定操作來引入名字。Python中的所謂的代碼塊就是一段作為執行單元的程式。比如:模組、函數、類定義。在互動式環境中輸入的命令也是代碼塊的一種。一個Python指令檔也是一個代碼塊。還有就是,當我們在命令列上使用-c選項指定的命令也是一個代碼塊。傳遞給內建函數eval()和exec()的字串參數也是代碼塊的一種。代碼塊是以執行幀的方式被執行的,一個執行幀包含了一些管理資訊,可以用於調試。執行幀還會在執行完
Time of Update: 2016-10-17
譯註:這是一篇在Stack overflow上很熱的文章。提問者自稱已經掌握了有關Python OOP編程中的各種概念,但始終覺得元類(metaclass)難以理解。他知道這肯定和自省有關,但仍然覺得不太明白,希望大家可以給出一些實際的例子和程式碼片段以協助理解,以及在什麼情況下需要進行元編程。於是e-satis同學給出了神一般的回複,該回複獲得了985點的贊同點數,更有人評論說這段回複應該加入到Python的官方文檔中去。而e-satis同學本人在Stack
Time of Update: 2016-10-18
python進階筆記 thread 和
Time of Update: 2016-10-18
再看python多線程------threading模組,pythonthreading模組現在把關於多線程的能想到的需要注意的點記錄一下:關於threading模組:1、關於 傳參問題 如果調用的子線程函數需要傳參,要在參數後面加一個“,”否則會拋參數異常的錯誤。 如下:1 for i in xrange(5):2
Time of Update: 2016-10-18
Python練習題 023:比後面的人大2歲,python023【Python練習題 023】 有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大兩歲。最後
Time of Update: 2016-10-18
django admin後台提示沒有static樣式相關的檔案,djangostatic問題現象: 將DEBUG = TEMPLATE_DEBUG = False設定為False後,訪問admin的管理後台,沒有樣式了。 解決辦法:vim settings.py 確保有下面的這兩行STATIC_URL = '/static/'STATIC_ROOT =
Time of Update: 2016-10-18
IO多路模型--select,IO模型--select 1.IO多工模型的觸發 首先介紹一個有關IO多路模型中的“觸發”的概念: 1 # 在linux的IO多工中有水平觸發,邊緣觸發兩種模式,這兩種模式的區別如下: 2 # 3 # 水平觸發:如果檔案描述符已經就緒可以非阻塞的執行IO操作了,此時會觸發通知.允許在任意時刻重複資料偵測IO的狀態, 4 # 沒有必要每次描述符就緒後儘可能多的執行IO.select,poll就屬於水平觸發. 5 # 6 #