Time of Update: 2017-01-19
繼上一篇文章使用xlrd來讀Excel之後,這一篇文章就來介紹下,如何來寫Excel,寫Excel我們需要使用第三方庫xlwt,和xlrd一樣,xlrd表示read xls,xlwt表示write xls,同樣目前版本只支援97-03版本的Excel。xlwt下載:xlwt 0.7.4安裝xlwt安裝方式一樣是python setup.py install就可以了,或者直接解壓到你的工程目錄中。API介紹擷取一個xls執行個體複製代碼 代碼如下:xls =
Time of Update: 2017-01-19
本篇文章介紹如何使用xlrd來讀取Excel表格中的內容,xlrd是第三方庫,所以在使用前我們需要安裝xlrd。另外我們一般會使用xlwt來寫Excel,所以下一篇文章我們會來介紹如何使用xlwt來寫Excel。xlrd下載:xlrd 0.8.0安裝xlrd安裝xlrd,只需運行setup即可,另外你也可以直接解壓縮到你的project中,也可以直接用xlrd的API擷取Excel,這裡稱之為work book複製代碼
Time of Update: 2017-01-19
目前還沒有更好的方法來追寫Excel,lorinnn在網上搜尋到以及之後用到的方法就是使用第三方庫xlutils來實現了這個功能,主體思想就是先複製一份Sheet然後再次基礎上追加並儲存到一份新的Excel文檔中去。使用xlutils代碼實現如下:# -*- coding: utf-8 -*- ''' Created on 2012-12-17 @author: walfred @module: XLRDPkg.write_append @description: ''' import
Time of Update: 2017-01-19
今天介紹下Psyco模組,Psyco模組可以使你的Python程式啟動並執行像C語言一樣快。都說Python語言易用易學,但效能上跟一些編譯語言(如C語言)比較要差不少,這裡可以用C語言和Python語言各編寫費伯納西數列計算程式,並計算已耗用時間:C語言程式複製代碼 代碼如下:int fib(int n){ if (n < 2) return n; else
Time of Update: 2017-01-19
Python內建的tarfile模組可以方便讀取tar歸檔檔案,牛b的是可以處理使用gzip和bz2壓縮歸檔檔案tar.gz和tar.bz2。與tarfile對應的是zipfile模組,zipfile是處理zip壓縮的。請注意:os.system(cmd)可以使Python指令碼執行命令,當然包括:tar -czf *.tar.gz *,tar -xzf *.tar.gz,unzip等,當我覺得這樣儘管可以解決問題,但我覺得很業餘。使用tarfile壓縮複製代碼
Time of Update: 2017-01-19
本文執行個體講述了python單例模式。分享給大家供大家參考。具體分析如下:__new__()在__init__()之前被調用,用於產生執行個體對象。利用這個方法和類的屬性的特點可以實現設計模式的單例模式。單例模式是指建立唯一對象,單例模式設計的類只能執行個體化1個對象。 class Singleton(object): __instance=None def__init__(self): pass def__new__(cls,*args,**kwd): if
Time of Update: 2017-01-19
本文中,我將嘗試展示用Docker開發python應用(主要是Web應用)的可行方法。雖然我本人專註於Python的Flask微架構,但本文目的是示範如何通過Docker更好地開發和共用應用程式,(由任何語言和架構開發的應用程式)。Docker通過封裝依賴項,大大減少了開發環境和正式產品的差距。大多數Python開發人員在開發中使用virtualenv。它提供了一種易用的機制讓應用程式使用自己專用的依賴項,這些依賴項可能與在其它應用程式或作業系統存在衝突(尤其是不同的Pyhton版本,還有不同的
Time of Update: 2017-01-19
python是支援多線程的,並且是native的線程。主要是通過thread和threading這兩個模組來實現的。thread是比較底層的模組,threading是對thread做了一些封裝的,可以更加方便的被使用。這裡需要提一下的是python對線程的支援還不夠完善,不能利用多CPU,但是下個版本的python中已經考慮改進這點,讓我們拭目以待吧。
Time of Update: 2017-01-19
本文執行個體講述了Python使用scrapy採集資料時為每個請求隨機分配user-agent的方法。分享給大家供大家參考。具體分析如下:通過這個方法可以每次請求更換不同的user-agent,防止網站根據user-agent屏蔽scrapy的蜘蛛首先將下面的代碼添加到settings.py檔案,替換預設的user-agent處理模組複製代碼 代碼如下:DOWNLOADER_MIDDLEWARES = { 'scraper.random_user_agent.
Time of Update: 2017-01-19
應用特性:在很多複雜而小功能需要調用需求時,而且這些調用往往還有一定相關性,即一調用就是一系列的。結構特性:把原本複雜而繁多的調用,規劃統一到一個入口類中,從此只通過這一個入口調用就可以了。代碼結構樣本:class ModuleOne(object): def Create(self): print 'create module one instance' def Delete(self): print 'delete module one instance'class
Time of Update: 2017-01-19
本文執行個體講述了python中Genarator函數用法。分享給大家供大家參考。具體如下:Generator函數的定義與普通函數的定義沒有什麼區別,只是在函數體內使用yield產生資料項目即可。Generator函數可以被for迴圈遍曆,而且可以通過next()方法獲得yield產生的資料項目。def func(n): for i in range(n): yield i for i in func(3): print i r=func(3) print r.next()
Time of Update: 2017-01-19
py2exe在sourceforge 的下載只支援到2.7。針對python3.0+的版本,需要自己編譯。1.下載源碼svn checkout svn://svn.code.sf.net/p/py2exe/svn/trunk py2exe-svn2.編譯環境這裡使用的是vs2014.3.安裝進入py2exe-3python setup.py install這裡會進行編譯、安裝。此外,python預設使用的是vs9,針對vs2014,需要改下檔案:複製代碼
Time of Update: 2017-01-19
bsddb模組是用來操作bdb的模組,bdb是著名的Berkeley DB,它的效能非常好,mysql的儲存後端引擎都支援bdb的方式。這裡簡單介紹一些關於bsddb的使用方法。bdb不同於一般的關聯式資料庫,它儲存的資料只能是以key和value組成的一對資料,使用就像python的字典一樣,它不能直接表示多個欄位,當要儲存多個欄位的資料時,只能把資料作為一個整體存放到value中。使用bsddb面臨的第一問題是使用什麼資料存取方法,bdb支援四種:btree, hash, queue,
Time of Update: 2017-01-19
本文執行個體講述了Python使用scrapy採集資料過程中放回下載過大頁面的方法。分享給大家供大家參考。具體分析如下:添加以下代碼到settings.py,myproject為你的項目名稱複製代碼 代碼如下:DOWNLOADER_HTTPCLIENTFACTORY = 'myproject.downloader.LimitSizeHTTPClientFactory'自訂限制下載過大頁面的模組複製代碼 代碼如下:MAX_RESPONSE_SIZE = 1048576 # 1Mbfrom
Time of Update: 2017-01-19
AES(英文:Advanced Encryption Standard,中文:進階加密標準),是一種區塊加密標準。AES將未經處理資料分成多個4×4位元組矩陣來處理,通過預先定義的金鑰組每個位元組矩陣中的每個位元組進行異或、替換、移位以及線性變換操作來達到加密的目的。密鑰長度可以是128,192或256位元。 下面是一個利用Python M2Crypto庫,並使用aes_128_ecb演算法進行加密和解密的例子。首先介紹一下幾個關鍵的點:1、iv(
Time of Update: 2017-01-19
本文執行個體講述了Python使用scrapy採集時偽裝成HTTP/1.1的方法。分享給大家供大家參考。具體如下:添加下面的代碼到 settings.py 檔案複製代碼 代碼如下:DOWNLOADER_HTTPCLIENTFACTORY = 'myproject.downloader.HTTPClientFactory'儲存以下代碼到單獨的.py檔案複製代碼 代碼如下:from scrapy.core.downloader.webclient import
Time of Update: 2017-01-19
本文執行個體講述了Python列印scrapy蜘蛛抓取樹結構的方法。分享給大家供大家參考。具體如下:通過下面這段代碼可以一目瞭然的知道scrapy的抓取頁面結構,調用也非常簡單#!/usr/bin/env pythonimport fileinput, refrom collections import defaultdictdef print_urls(allurls, referer, indent=0): urls = allurls[referer] for url in urls:
Time of Update: 2017-01-19
之前遇到一個情境是這樣的:我在自己的電腦上需要用mongodb圖形用戶端,但是mongodb的伺服器位址沒有對外網開放,只能通過先登入主機A,然後再從A串連mongodb伺服器B。本來想通過ssh連接埠轉寄的,但是我沒有從機器A串連ssh到B的許可權。於是就自己用python寫一個。 原理很簡單。1.開一個socket
Time of Update: 2017-01-19
基本思路就是,使用MIMEMultipart來標示這個郵件是多個部分組成的,然後attach各個部分。如果是附件,則add_header加入附件的聲明。在python中,MIME的這些對象的繼承關係如下。MIMEBase |-- MIMENonMultipart |--
Time of Update: 2017-01-19
最近,我們老大要我寫一個守護者程式,對伺服器處理序進行守護。如果伺服器不幸掛掉了,守護者能即時的重啟應用程式。上網Google了一下,發現Python有很幾個模組都可以建立進程。最終我選擇使用subprocess模組,因為在Python手冊中有這樣一段話: This module intends to replace several other, older modules and functions, such as: os.system、os.spawn*、os.popen*、popen2