Time of Update: 2016-06-06
在多線程環境下,每個線程都有自己的資料。一個線程使用自己的局部變數比使用全域變數好,因為局部變數只有線程自己能看見,不會影響其他線程,而全域變數的修改必須加鎖。但是局部變數也有問題,就是在函數調用的時候,傳遞起來很麻煩:def process_student(name): std = Student(name) # std是局部變數,但是每個函數都要用它,因此必須傳進去: do_task_1(std) do_task_2(std)def do_task_1(std):
Time of Update: 2016-06-06
本文執行個體講述了python搜尋指定目錄的方法。分享給大家供大家參考。具體分析如下:#-------------------------------------# Name: search_directory.py# Author: Kevin Harris# Last Modified: 02/13/04# Description: This Python script demonstrates how to use os.walk()# to walk
Time of Update: 2016-06-06
Django中的物件查詢Django架構內建了ORM,實現了一些比較強大而且方便的查詢功能,這些功能和表無關。比如下面這個例子:class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published')>>> Question.objects.all()>>> Question.objects.get(pk=1)
Time of Update: 2016-06-06
本文執行個體講述了python通過定義一個類執行個體作為ftp回調方法。分享給大家供大家參考。具體實現方法如下:class Writer: def __init__(self, file): self.f = open(file, "w") def __call__(self, data): self.f.write(data) self.f.write('\n') print dataFILENAME = "AutoIndent.py"writer =
Time of Update: 2016-06-06
本文執行個體講述了python實現將元祖轉換成數組的方法。分享給大家供大家參考。具體分析如下:python的元祖使用一對小括弧表示的,元素是固定的,如果希望添加新的元素,可以先將元祖轉換成數組列表,再進行操作colour_tuple = ("Red","Green","Blue")colour_list = list(colour_tuple)assert colour_list == ["Red","Green","Blue"]希望本文所述對大家的Python程式設計有所協助。
Time of Update: 2016-06-06
網站流量上來後,日誌按天甚至小時儲存更方便查看和管理,而Python的logging模組也提供了TimedRotatingFileHandler來支援以不同的時間維度歸檔日誌。然而根據Logging HOWTO的官方指南設定後,卻發現新的日誌只剩下root的,Tornado內部的logger全部沒有生效。參考stackoverflow上的一個回答,我發現下面的配置能讓Tornado內部的logger也用上TimedRotatingFileHandler:#
Time of Update: 2016-06-06
在實驗中需要自己構造單獨的HTTP資料報文,而使用SOCK_STREAM進行發送資料包,需要進行完整的TCP互動。因此想使用原始通訊端進行編程,直接構造資料包,並在IP層進行發送,即採用SOCK_RAW進行資料發送。使用SOCK_RAW的優勢是,可以對資料包進行完整的修改,可以處理IP層上的所有資料包,對各欄位進行修改,而不受UDP和TCP的限制。下面開始構造HTTP資料包,IP層和TCP層使用python的Impacket庫,http內容自行填寫。#!/usr/bin/env python #
Time of Update: 2016-06-06
在web開發中經常用到驗證碼,為了防止機器人註冊或者惡意登陸和查詢等,作用不容小覷但是驗證碼其實不是一個函數就能搞定的,它需要產生圖片和浮水印,其實每種語言都有相關的函數產生圖片和文字浮水印。包括我熟悉的php,呵呵,今天主要來分享如何用python產生驗證碼。python產生驗證碼主要用到如下模組:Image, ImageDraw, ImageFont, ImageFilter和隨機數產生模組Random。代碼如下:#!/usr/bin/env
Time of Update: 2016-06-06
本文執行個體講述了python實現從字典中刪除元素的方法。分享給大家供大家參考。具體分析如下:python的字典可以通過del方法進行元素刪除,下面的代碼詳細示範了這一過程# Create an empty dictionaryd = {}# Add an itemd["name"] = "Fido"assert d.has_key("name")# Delete the itemdel d["name"]assert not d.has_key("name")# Add a couple
Time of Update: 2016-06-06
有時候需要羅列下隨身碟等行動裝置或一個程式下面的目錄結構的需求。基於這樣的需求個人整理了一個使用Python的小工具,期望對有這方面需求的朋友有所協助。以下為具體代碼:如果你所有要求的檔案目錄不需要完整的檔案路徑的話,直接更換下面的注釋代碼即可~ # -*- coding:utf-8 -*-import osdef list_files(startPath): fileSave = open('list.txt','w') for root,
Time of Update: 2016-06-06
python的os module中有fork()函數用於產生子進程,產生的子進程是父進程的鏡像,但是它們有各自的地址空間,子進程複製一份父進程記憶體給自己,兩個進程之 間的執行是相互獨立的,其執行順序可以是不確定的、隨機的、不可預測的,這點與多線程的執行順序相似。 import osdef child(): print 'A new child:', os.getpid() print 'Parent id is:', os.getppid() os._exit(0)def
Time of Update: 2016-06-06
資料分析,特別是網站分析中需要對訪問者的IP進行分析,分析IP中主要是區分來訪者的省份+城市+行政區資料,考慮到目前純真IP資料庫並沒有把這些資料做很好的區分,於是尋找了另外一個可行的方案(當然不是花錢買哈)。解決方案就是抓取新浪的IP資料。新浪的IP資料介面為: http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=123.124.2.85返回的資料為: 代碼如下:{"ret":1,"start":"123
Time of Update: 2016-06-06
最近被多線程給坑了下,沒意識到類變數在多線程下是共用的,還有一個就是沒意識到 記憶體釋放問題,導致越累越大1.python 類變數 在多線程情況 下的 是共用的2.python 類變數 在多線程情況 下的 釋放是不完全的3.python 類變數 在多線程情況 下沒釋放的那部分 記憶體 是可以重複利用的import threading import time class Test: cache = {} @classmethod def get_value(self,
Time of Update: 2016-06-06
資料類型:float — 浮點數可以精確到小數點後面15位int — 整型可以無限大bool — 非零為true,零為falselist — 列表Float/Int:運算子:/ — 浮點運算除 // — 當結果為正數時,取整; 11//5 =2; 11//4 = 2當結果為負數時,向下取整;-11//5=-3; -11//4=-3當分子分母都是float,結果為float型** — 計算冪; 11**2 =121% — 取餘其他數學運算:1.分數:import
Time of Update: 2016-06-06
#!/usr/bin/env python#coding=utf-8# modifyDate: 20120808 ~ 20120810# 原作者為:bones7456, http://li2z.cn/# 修改者為:decli@qq.com# v1.2,changeLog:# +: 檔案日期/時間/顏色顯示、多線程支援、首頁跳轉# -: 解決不同瀏覽器下上傳檔案名稱亂碼問題:僅IE,其它瀏覽器暫時沒處理。# -: 一些路徑顯示的bug,主要是 cgi.escape() 轉義問題# ?:
Time of Update: 2016-06-06
1、問題:群中有同學貼了如下一段代碼,問為何 list 最後列印的是空值? from multiprocessing import Process, Managerimport os manager = Manager()vip_list = []#vip_list = manager.list() def testFunc(cc): vip_list.append(cc) print 'process id:', os.getpid() if __name__ == '__main__':
Time of Update: 2016-06-06
1.pyqt4寫的介面 find_ui.py#-*- coding: utf-8 -*-from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8except AttributeError: def _fromUtf8(s): return s try: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text,
Time of Update: 2016-06-06
本文執行個體講述了Python封裝shell命令的方法。分享給大家供大家參考。具體實現方法如下:# -*- coding: utf-8 -*-import osimport subprocessimport signalimport pwdimport sysclass MockLogger(object): '''類比日誌類。方便單元測試。''' def __init__(self): self.info = self.error = self.critical =
Time of Update: 2016-06-06
最近折騰索引引擎以及資料統計方面的工作比較多, 與 Python 字典頻繁打交道, 至此整理一份此方面 API 的用法與坑法備案. 索引引擎的基本工作原理便是倒排索引, 即將一個文檔所包含的文字反過來映射至文檔; 這方面演算法並沒有太多花樣可言, 為了增加效率, 索引資料盡可往記憶體裡面搬, 此法可效王獻之習書法之勢, 只要把十八台機器記憶體全部塞滿, 那麼基本也就功成名就了. 而基本思路舉個簡單例子, 現在有以下文檔 (分詞已經完成) 以及其包含的關鍵詞 doc_a: [word_w,
Time of Update: 2016-06-06
本文執行個體講述了python使用fileinput模組實現逐行讀取檔案的方法。分享給大家供大家參考。具體實現方法如下:#--------------------------------# Name: read_lines.py# Author: Kevin Harris# Last Modified: 02/13/04# Description: This Python script demonstrates # how to use fileinput