Time of Update: 2016-10-18
很多情境為了不阻塞,都需要非同步回調機制。這是一個簡單的例子。python的多線程非同步常用到queue和threading模組#!/usr/bin/env python# -*- coding: UTF-8 -*- import loggingimport queueimport threading def func_a(a, b): return a + b def func_b(): pass def func_c(a, b, c): return a, b,
Time of Update: 2016-10-18
最近我在維基百科上完成了一些資料採礦方面的任務。它由這些部分組成:解析enwiki-pages-articles.xml的維基百科轉儲;把類別和頁儲存到MongoDB裡面;對類別名稱進行重新分門別類。我對CPython 2.7.3和PyPy 2b的實際任務效能進行了測試。我使用的庫是:redis 2.7.2pymongo 2.4.2此外CPython是由以下庫支援的:hiredispymongo
Time of Update: 2016-10-18
純Python的ODBC庫PyPyODBC 1.0 發布,新版本同時相容於Python2.x和Python3.3。PyPyODBC是一個Python
Time of Update: 2016-10-18
當出現萬以上的整型數字時,經常要把它們口語化比較直觀。下面分享兩段代碼,python與js的pythondef fn(num): ''' 把數字口語化 ''' ret = '' num = int(num) if num/10000 == 0: ret = str(num) else: if num/10**8 == 0: if
Time of Update: 2016-10-18
簡介在這篇文章中,我將向大家示範怎樣向一個通用計算機一樣解析並計算一個四則運算運算式。當我們結束的時候,我們將得到一個可以處理諸如 1+2*-(-3+2)/5.6+3樣式的運算式的計算機了。當然,你也可以將它拓展的更為強大。我本意是想提供一個簡單有趣的課程來講解 文法分析 和 正規文法(編譯原理內容)。同時,介紹一下 PlyPlus,這是一個我斷斷續續改進了好幾年的文法解析
Time of Update: 2016-10-18
該指令碼作用用於查詢日誌過去一分鐘內的並發量,並發單位位1分鐘,結果列印在標準輸出中,可以配合一些軟體實現日誌的並發即時監控,比如zabbix。#! /usr/local/bin/python3import sysimport reimport datetimeimport osdef generate_previous_minutes(): format='%d/%b/%Y:%H:%M' return
Time of Update: 2016-10-18
你只需要對自己的代碼稍微做些修改就可以很好的同時支援python2和python3的。下面我將簡要的介紹一下如何讓自己的python代碼如何同時支援python2和python3。放棄python 2.6之前的python版本python 2.6之前的python版本缺少一些新特性,會給你的遷移工作帶來不少麻煩。如果不是迫不得已還是放棄對之前版本的支援吧。使用 2to3
Time of Update: 2016-10-18
今天來看一下如何使用python處理excel檔案,處理excel檔案是在工作中經常用到的,python為我們考慮到了這一點,python中本身就內建csv模組。1.用python讀取csv檔案:csv是逗號分隔字元格式 一般我們用的execl產生的格式是xls和xlsx 直接重新命名為csv的話會報錯:Error: line contains NULL byteinsun解決方案:出錯原因是直接是把尾碼為xls的execl檔案重新命名為csv的 正常的要是另存新檔csv檔案
Time of Update: 2016-10-18
由於N種原因,一個分析入侵日誌的任務落在了我身上,1G的日誌,怎麼去快速分析呢??刺總說可以搞個指令碼解析入庫,再到資料庫分析。。。算了,那就蛋疼了,直接碼個指令碼把有問題的日誌拿出來分析吧。於是就有了這個小指令碼。至於怎麼用就要看你自己了,哈哈,比如查到sql注入語句,然後看到IP,就可以改下指令碼,用IP為特徵取出日誌,分析入侵過程。速度很快哦,我那破機器,跑1G記錄檔也就幾秒鐘的啦。在工作中寫程式完成任務是很快樂的事,也很有意思。哈哈使用參數:seay.py
Time of Update: 2016-10-18
工作需要,對公司的MYSQL資料庫進行備份,趕上剛剛開始學python,看了一套簡單的python教學視頻,簡單的寫了個備份指令碼,個人表示 對python 的class 、function、build-in function 、私人變數、全域變數 等等,該怎麼用,啥時候用等 毫無概念 ,僅此記錄一下吧,也歡迎路過的pythoner賜教。個人已知的一些問題: 1、該指令碼必須要求 mysql設定檔內的所有行為
Time of Update: 2016-10-18
# 匯入 smtplib 和 MIMETextimport smtplibfrom email.mime.text import MIMEText # 定義發送列表mailto_list=["root@pythontab.com","10118157@qq.com"] # 設定伺服器名稱、使用者名稱、密碼以及郵件尾碼mail_host = "smtp.163.com"mail_user = "xx@163.com"mail_pass =
Time of Update: 2016-10-18
系統內容:OS:Oracle Linux Enterprise
Time of Update: 2016-10-18
解壓後取出以下檔案:訓練資料:icwb2-data/training/pku_ training.utf8測試資料:icwb2-data/testing/pku_ test.utf8正確分詞結果:icwb2-data/gold/pku_ test_ gold.utf8評分工具:icwb2-data/script/socre2
Time of Update: 2016-10-18
多線程編程必須理解的一些基本概念,適用於所有程式設計語言。內容:並髮式編程多任務作業系統多線程vs多進程安全執行緒線程的生命週期線程的類型並髮式編程不同的編程範式對軟體有不同的視角。並髮式編程將軟體看做任務和資源的組合——任務之間競爭和共用資源,當資源滿足時執行任務,否則等待資源。並髮式編程使得軟體易於理解和重用,在某些情境能夠極大提高效能。多任務作業系統要實現並發,首先需要作業系統的支援。現在的作業系統大部分都是多任務作業系統,可以“同時”執行多個任務。多任務可以在進程或線程的層面執行。進程是
Time of Update: 2016-10-18
如上一節,python的threading.Thread類有一個run方法,用於定義線程的功能函數,可以在自己的線程類中覆蓋該方法。而建立自己的線程執行個體後,通過Thread類的start方法,可以啟動該線程,交給python虛擬機器進行調度,當該線程獲得執行的機會時,就會調用run方法執行線程。讓我們開始第一個例子:# encoding: UTF-8import threadingimport time class MyThread(threading.Thread): def
Time of Update: 2016-10-18
goPy 是一個新的開源項目,實現了用 Go 語言來編寫 CPython 擴充。範例程式碼:package simple import ("fmt""gopy") func example(args *py.Tuple) (py.Object, error) {fmt.Printf("simple.example: %v\n", args)py.None.Incref()return py.None, nil} func init() {methods :=
Time of Update: 2016-10-18
1)urllib2+BeautifulSoup抓取Goolge搜尋連結近期,參與的項目需要對Google搜尋結果進行處理,之前學習了Python處理網頁相關的工具。實際應用中,使用了urllib2和beautifulsoup來進行網頁的抓取,但是在抓取google搜尋結果的時候,發現如果是直接對google搜尋結果頁面的原始碼進行處理,會得到很多“髒”連結。看為搜尋“titanic
Time of Update: 2016-10-18
問題的提出上一節的例子中,每個線程互相獨立,相互之間沒有任何關係。現在假設這樣一個例子:有一個全域的計數num,每個線程擷取這個全域的計數,根據num進行一些處理,然後將num加1。很容易寫出這樣的代碼:# encoding: UTF-8import threadingimport time class MyThread(threading.Thread): def run(self): global num time.sleep(1) num
Time of Update: 2016-10-18
注意:這段代碼需要wmi 和 系統 win32 擴充支援。沒安裝庫的要先下載安裝,我裝的是 WMI-1.4.6.win32 和 pywin32-218.win32-py2.7還有,代碼裡面檔案目錄自己修改下咯。# -*- coding:gb2312 -*- import wmihardware=file('F:\Python\Hardware.txt','w') w=wmi.WMI()hardware.write("cpu型號,主頻:\n")for
Time of Update: 2016-10-18
import httplibimport urllibimport timeimport json class Transaction(object): def __init__(self): self.custom_timers = {} def run(self): conn = httplib.HTTPConnection("localhost:8080") headers = {"Content-type":