Time of Update: 2017-01-19
壓縮資料建立gzip檔案先看一個略麻煩的做法 import StringIO,gzipcontent = 'Life is short.I use python'zbuf = StringIO.StringIO()zfile = gzip.GzipFile(mode='wb', compresslevel=9, fileobj=zbuf)zfile.write(content)zfile.close()但其實有個快捷的封裝,不用用到StringIO模組 f =
Time of Update: 2017-01-19
本文執行個體講述了Python使用scrapy抓取網站sitemap資訊的方法。分享給大家供大家參考。具體如下:import refrom scrapy.spider import BaseSpiderfrom scrapy import logfrom scrapy.utils.response import body_or_strfrom scrapy.http import Requestfrom scrapy.selector import HtmlXPathSelectorclass
Time of Update: 2017-01-19
前些天用python處理xml的轉換的一個小程式,用來把xml,xsl轉換成html。用的libxml2,所以還要先安裝了libxml2模組才能使用。# -*- coding: mbcs -*- #!/usr/bin/pythonimport libxml2, libxsltclass compoundXML: def __init__(self): self._result = None self._xsl = None self._xml = None
Time of Update: 2017-01-19
html頁面一般都會指定一個編碼,如何擷取到是處理html頁面的第一步,因為錯誤的編碼必然帶來後面處理的問題。這裡我用python的Regex寫了個:import rea = ["<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />", '<meta http-equiv=Content-Type content="text/html;charset=gb2312">',
Time of Update: 2017-01-19
字串是Python中最常用的資料類型,而且很多時候你會用到一些不屬於標準ASCII字元集的字元,這時候代碼就很可能拋出UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 10: ordinal not in
Time of Update: 2017-01-19
最近研究研究了css,少不了去網上分析一下別人的網頁, 但很多網站的css檔案都是要麼寫在一行,要麼一個換行都沒有,看起來極其痛苦,所以寫一個指令碼轉換一下,轉換為比較有可讀性的格式。下面就是這個指令碼:import string, sysimport re, StringIOTAB=4def format(ss): f = open (ss, "r") data = f.read() f.close() dlen = len(data) i = 0 buf =
Time of Update: 2017-01-19
Python項目中很多時候會需要將時間在Datetime格式和TimeStamp格式之間轉化,又或者你需要將UTC時間轉化為本地時間,本文總結了這幾個時間之間轉化的函數,供大家參考。一、Datetime轉化為TimeStamp def datetime2timestamp(dt, convert_to_utc=False): ''' Converts a datetime object to UNIX timestamp in milliseconds. ''' if
Time of Update: 2017-01-19
StringIO經常被用來作為字串的緩衝,應為StringIO有個好處,他的有些介面和檔案操作是一致的,也就是說用同樣的代碼,可以同時當成檔案操作或者StringIO操作。比如:複製代碼 代碼如下:import string, os, sysimport StringIOdef writedata(fd, msg): fd.write(msg) f = open('aaa.txt', 'w')writedata(f,
Time of Update: 2017-01-19
還是那個題目(題目和流程見java版本),感覺光用java寫一點新意也沒有,恰巧剛學習了python,何不拿來一用,呵呵:伺服器端:import SocketServer, time class MyServer(SocketServer.BaseRequestHandler): userInfo = { 'yangsq' : 'yangsq', 'hudeyong' : 'hudeyong', 'mudan' : 'mudan' } def
Time of Update: 2017-01-19
通過Python操作註冊表有兩種方式,第一種是通過Python的內建模組 _winreg;另一種方式就是Win32 Extension For Python 的win32api模組,但是需要進行額外的安裝。這裡主要給出一些_winreg和win32api的Demo代碼。 1、
Time of Update: 2017-01-19
1.問題的描述用Python進行文本處理時,有時候處理的文本中包含中文、英文、日文等多個語系的文本,有時候不能同時進行處理,這個時候就需要判別當前文本是屬於哪個語系的。Python中有個langid工具包提供了此功能,langid目前支援97種語言的檢測,非常好用。2.程式的代碼以下Python是調用langid工具包來對文本進行語言偵測與判別的程式碼: import langid #引入langid模組 def
Time of Update: 2017-01-19
本文執行個體講述了Python實現線上程裡運行scrapy的方法。分享給大家供大家參考。具體如下:如果你希望在一個寫好的程式裡調用scrapy,就可以通過下面的代碼,讓scrapy運行在一個線程裡。"""Code to run Scrapy crawler in a thread - works on Scrapy 0.8"""import threading, Queuefrom twisted.internet import reactorfrom
Time of Update: 2017-01-19
本文執行個體講述了Python實現從指令碼裡運行scrapy的方法。分享給大家供大家參考。具體如下:複製代碼 代碼如下:#!/usr/bin/pythonimport osos.environ.setdefault('SCRAPY_SETTINGS_MODULE', 'project.settings') #Must be at the top before other importsfrom scrapy import log, signals, projectfrom
Time of Update: 2017-01-19
本文執行個體講述了Python自訂scrapy中間模組避免重複採集的方法。分享給大家供大家參考。具體如下:from scrapy import logfrom scrapy.http import Requestfrom scrapy.item import BaseItemfrom scrapy.utils.request import request_fingerprintfrom myproject.items import MyItemclass
Time of Update: 2017-01-19
本來我一直不知道怎麼來更好地最佳化網頁的效能,然後最近做python和php同類網頁渲染速度比較時,意外地發現一個很簡單很白癡但是 我一直沒發現的好方法(不得不BS我自己):直接像某些php應用比如Discuz論壇那樣,在產生的網頁中列印出“本頁面產生時間多少多少秒”,然後在 不停地訪問網頁測試時,很直觀地就能發現什麼操作會導致瓶頸,怎樣來解決瓶頸了。於是我發現SimpleCD在
Time of Update: 2017-01-19
pprint – 美觀列印作用:美觀列印資料結構pprint 包含一個“美觀印表機”,用於產生資料結構的一個美觀視圖。格式化工具會產生資料結構的一些表示,不僅可以由解譯器正確地解析,而且便於人類閱讀。輸出儘可能放在一行上,分解為多行時則需要縮排。以下執行個體用用到的data包含一下資料data = [(1,{'a':'A','b':'B','c':'C','d':'D'}), (2,{'e':'E','f':'F','g':'G','h':'H', 'i':'I','j':'J'
Time of Update: 2017-01-19
今天我們講一下用Python寫的GUI小程式。一個小鬧鐘(只是工具提示,沒有聲音哦)讓我們先介紹這個鬧鐘如何奇葩。需要通過命令列啟動。沒有標題列。沒菜單。甚至沒有關閉按鈕。沒有運行介面。看到這裡想必大家要問了,何必去做一個這樣弱爆了的程式呢。顯然,教育意義大於其實際用處。像其他的模組一樣,QT介面包是需要載入的。我們用到了命令列輸入,所以,sys模組也是必須的。用到了時間,但是我們不需要使用time模組,我們用QT提供的QTime模組。讓我們先寫import 語句部分。 import
Time of Update: 2017-01-19
如果你經常使用python開發GUI程式的話,那麼就知道,有時你需要很長時間來執行一個任務。當然,如果你使用命令列程式來做的話,你回非常驚訝。大部分情況下,這會堵塞GUI的事件迴圈,使用者會看到程式卡死。如何才能避免這種情況呢?當然是利用線程或進程了!本文,我們將探索如何使用wxPython和theading模組來實現。wxpython安全執行緒方法wxPython中,有三個“安全執行緒”的函數。如果你在更新UI介面時,三個函數都不使用,那麼你可能會遇到奇怪的問題。有時GUI也忙運行挺正常,有時
Time of Update: 2017-01-19
首先通過一個例子來看一下本文中可能用到的對象和相關概念。 #coding: UTF-8 import sys # 模組,sys指向這個模組對象 import inspect def foo(): pass # 函數,foo指向這個函數對象 class Cat(object): # 類,Cat指向這個類對象 def __init__(self, name='kitty'): self.name = name def sayHi(self): #
Time of Update: 2017-01-19
一、簡介 Python的條件和迴圈語句,決定了程式的控制流程程,體現結構的多樣性。須重要理解,if、while、for以及與它們相搭配的 else、 elif、break、continue和pass語句。二、詳解1、if語句 Python中的if子句由三部分組成:關鍵字本身、用於判斷結果真假的條件運算式以及當運算式為真或者非零時執行的代碼塊。if