Time of Update: 2016-06-16
實現簡單的多線程下載,需要關注如下幾點:1.檔案的大小:可以從reponse header中提取,如“Content-Length:911”表示大小是911位元組2.任務拆分:指定各個線程下載的檔案的哪一塊,可以通過request header中添加“Range: bytes=300-400”(表示下載300~400byte的內容),注意可以請求的檔案的range是[0,
Time of Update: 2016-06-16
在Linux上有個常用的命令 curl(非常好用),支援curl的就是大名鼎鼎的libcurl庫;libcurl是功能強大的,而且是非常高效的函數庫。libcurl除了提供本身的C API之外,還有多達40種程式設計語言的Binding,這裡介紹的PycURL就是libcurl的Python
Time of Update: 2016-06-16
實現步驟:1. PyCharm, IDE有個Project setting表徵圖,是給run表徵圖做配置的,配置run file為myfile.py2.複製代碼 代碼如下:# --------------------------------------#! /usr/bin/python# File: myfile.py# Author: Michael Fanfrom make.py import dodef main():do()if __name__ == '__main__':main(
Time of Update: 2016-06-16
因為突然有個邪惡的想法,想在自己的Android平板上面搭建一個DNS伺服器,因為平板上之前安裝過SL4A和Python的解譯器,也想繼續學學Python因此,就打算用Python實現了。在Google上面找了一下,Python實現的DNS,沒找到我所希望的答案,因此就決定自己來實現了。現在所實現的沒什麼高深的,只是能夠對A記錄查詢進行簡單的匹配和回複。實現的代碼如下:複製代碼 代碼如下:'''Created on 2012-10-15@author: RobinTang'''import
Time of Update: 2016-06-16
雖然這個問題我是在 Python 裡遇到的,但是用 Ruby 解釋起來比較容易一些。在 Ruby 裡,遍曆一個數組可以有很多種方法,最常用的兩種無非是 for 和 each:複製代碼 代碼如下:arr = ['a', 'b', 'c']arr.each { |e| puts e}for e in arr puts eend通常我比較喜歡後者,似乎因為寫起來比較好看,不過從效率上來說前者應該會稍微快一點,因為後者實際上是在遍曆的過程中對每個元素都調用一個
Time of Update: 2016-06-16
學習Python,基本文法不是特別難,有了C的基本知識,理解比較容易。本文的主要內容是Python基礎文法,學完後,能熟練使用就好。(開發環境依然是Python2.7,簡單使用)一,基本知識1,不需要預先定義資料類型(此說法值得商榷,姑且這麼說吧),這是與其他語言的最大不同(如C,C++,C#,Delphi等)複製代碼 代碼如下: >>> x=12 >>> y=13 >>> z=x+y >>> print z 25注意:儘管變數不需要預先定義,但是要使用的時候,必須賦值,否則報錯:複製代碼
Time of Update: 2016-06-16
一、不要使用可變對象作為函數預設值複製代碼 代碼如下:In [1]: def append_to_list(value, def_list=[]): ...: def_list.append(value) ...: return def_list ...:In [2]: my_list = append_to_list(1)In [3]: my_listOut[3]: [1]In [4]: my_other_list = append_to_list(
Time of Update: 2016-06-16
首先預覽一下 PyCharm 在實際應用中的介面:(更改了PyCharm的預設風格)安裝首先去下載最新的pycharm 2.7.3,進行安裝。可以直接在官網下載。PyCharm 的啟用方式:1,推薦購買正版。2,可以選擇試用,免費試用30天。3,網上找啟用碼:(下面的啟用碼來自互連網,僅供學習交流之用)user name:
Time of Update: 2016-06-16
最近在做的一個項目中需要使用到HTML5中引入的WebSocket技術,本來以為應該很容易就能搞定,誰知道在真正上手開發了以後才發現有很多麻煩的地方,雖然我們是一個以前端開發和設計見長的團隊,而且作為一個二手程式猿又長期不被待見,但是為了讓有同樣需求的朋友少走些彎路,我還是決定把實現方法貼在這個地方。關於WebSocket的基本概念,維基百科上解釋的很清楚,而且網上也能搜出來一大把,這裡就略過不表,直接進入正題。這次的問題首先有一個前提,就是得用Python來實現這個伺服器,如果對具體語言沒有限
Time of Update: 2016-06-16
思路需要實現準備一份未受感染的原始碼和一份可能受感染的原始碼,然後運行以下指令碼,就能找出到底哪些檔案被掛馬了。其中,主要是根據比對2份檔案的md5值來過濾可能被掛馬的檔案(確切的說應該是被修改過的檔案)Python指令碼複製代碼 代碼如下:__author__ = 'Flying'#coding:utf-8#Date:2014.6.5#檢測修改過的檔案import os,sys,hashlib,datetimeglobal_DirOld = ""global_DirNew =
Time of Update: 2016-06-16
直接上代碼:Server端:複製代碼 代碼如下: #!/usr/bin/env python # UDP Echo Server - udpserver.py import socket, traceback host = '' port = 54321 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
Time of Update: 2016-06-16
1,建立一個項目File --> New Project...2,建立一個檔案按右鍵剛建好的helloWord項目,選擇New --> Python File3,輸入檔案名稱輸入檔案名稱,沒什麼好說的4,進入編寫介面PyCharm的預設編輯介面很怪,會自動產生一行 __author__ = “作者” 的頭。而比較常用的檔案頭,如:#coding=utf-8 等,反倒沒有自動產生。輸入code:print "Hello
Time of Update: 2016-06-16
註:使用這個指令碼需要安裝scapy 包最好在linux平台下使用,因為scapy包在windows上安裝老是會有各種問題複製代碼 代碼如下:#coding:utf-8#example :sudo python arp_dos.py 192.168.1.103from scapy.all import ARP,sendimport os,re,sysdef get_gateway_ip(): t=os.popen('route -n') for i in t:
Time of Update: 2016-06-16
python以其優美的文法和方便的內建資料結構,贏得了不少程式員的親睞。其中有個很有用的資料結構,就是字典(dict),使用非常簡單。說到遍曆一個dict結構,我想大多數人都會想到 for key in dictobj 的方法,確實這個方法在大多數情況下都是適用的。但是並不是完全安全,請看下面這個例子:複製代碼 代碼如下:#這裡初始化一個dict>>> d = {'a':1, 'b':0, 'c':1, 'd':0}#本意是遍曆dict,發現元素的值是0的話,就刪掉>>> for k in d:
Time of Update: 2016-06-16
說socket代理之前,先來說說http代理,python的urllib2是內建http代理功能的,可以用如下代碼實現:複製代碼 代碼如下:proxy_handler = urllib2.ProxyHandler({'http' : 'http://地址:連接埠'})opener = urllib2.build_opener(proxy_handler,
Time of Update: 2016-06-16
tempfile.TemporaryFile如何你的應用程式需要一個臨時檔案來儲存資料,但不需要同其他程式共用,那麼用TemporaryFile函數建立臨時檔案是最好的選擇。其他的應用程式是無法找到或開啟這個檔案的,因為它並沒有引用檔案系統表。用這個函數建立的臨時檔案,關閉後會自動刪除。執行個體一:複製代碼 代碼如下:import osimport tempfileprint 'Building a file name yourself:'filename =
Time of Update: 2016-06-16
本模組提供了和Perl裡的Regex類似的功能,不關是Regex本身還是被搜尋的字串,都可以是Unicode字元,這點不用擔心,python會處理地和Ascii字元一樣漂亮。Regex使用反斜杆(\)來轉義特殊字元,使其可以匹配字元本身,而不是指定其他特殊的含義。這可能會和python字面意義上的字串轉義相衝突,這也許有些令人費解。比如,要匹配一個反斜杆本身,你也許要用'\\\\'來做為Regex的字串,因為Regex要是\\,而字串裡,每個反斜杆都要寫成\\。你也可以在字串前加上 r
Time of Update: 2016-06-16
sequence 序列sequence(序列)是一組有順序的元素的集合(嚴格的說,是對象的集合,但鑒於我們還沒有引入“對象”概念,暫時說元素)序列可以包含一個或多個元素,也可以沒有任何元素。我們之前所說的基礎資料型別 (Elementary Data Type),都可以作為序列的元素。元素還可以是另一個序列,以及我們以後要介紹的其他對象。序列有兩種:tuple(定值表; 也有翻譯為元組) 和 list (表)複製代碼 代碼如下:>>>s1 = (2, 1.3, 'love', 5.6, 9, 1
Time of Update: 2016-06-16
在我的Mac Air上,用pip安裝一些Python庫時,偶爾就會遇到一些報錯,關於“unused-command-line-argument-hard-error-in-future”,錯誤如下:複製代碼 代碼如下:cc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd
Time of Update: 2016-06-16
縮排Python最具特色的是用縮排來標明成塊的代碼。我下面以if選擇結構來舉例。if後面跟隨條件,如果條件成立,則執行歸屬於if的一個代碼塊。先看C語言的表達方式(注意,這是C,不是Python!)複製代碼 代碼如下:if ( i > 0 ){ x = 1; y = 2;}如果i > 0的話,我們將進行括弧中所包括的兩個賦值操作。括弧中包含的就是塊操作,它隸屬於if。在Python中,同樣的目的,這段話是這樣的複製代碼 代碼如下:if i > 0: x = 1 y = 2