Time of Update: 2017-01-19
學慣用書:《python 網路編程基礎》作者John Goerzen第一部分底層網路學習 Python提供了訪問底層作業系統Socket介面的全部方法,需要的時候這些介面可以提供靈活而強有力的功能。(1)基本用戶端操作 在《python 網路編程基礎》一書中,作者列出了一個簡單的Python用戶端程式,具體如下:複製代碼
Time of Update: 2017-01-19
本節為大家分享的例子是wxpython Frame的用法。例子: 複製代碼 代碼如下:#!/usr/bin/python # -*- coding: GBK -*- # simple.py import wx app = wx.App() frame = wx.Frame(None) frame.Show() app.MainLoop()例2,複製代碼 代碼如下:#!/usr/bin/python告訴程式
Time of Update: 2017-01-19
關於python讀取xml文章很多,但大多文章都是貼一個xml檔案,然後再貼個處理檔案的代碼。這樣並不利於初學者的學習,希望這篇文章可以更通俗易懂的教如何使用python 來讀取xml 檔案。一、什麼是xml?xml即可延伸標記語言 (XML),它可以用來標記資料、定義資料類型,是一種允許使用者對自己的標記語言進行定義的源語言。abc.xml複製代碼 代碼如下:<?xml version="1.0" encoding="utf-8"?><catalog>&
Time of Update: 2017-01-19
函數式編程是使用一系列函數去解決問題,按照一般編程思維,面對問題時我們的思考方式是“怎麼幹”,而函數函數式編程的思考方式是我要“幹什麼”。 至於函數式編程的特點暫不總結,我們直接拿例子來體會什麼是函數式編程。lambda運算式(匿名函數):普通函數與匿名函數的定義方式:複製代碼 代碼如下:#普通函數def add(a,b): return a + bprint add(2,3)#匿名函數add = lambda a,b : a + bprint add(2,3
Time of Update: 2017-01-19
對於python 多線程的理解,我花了很長時間,搜尋的大部份文章都不夠通俗易懂。所以,這裡力圖用簡單的例子,讓你對多線程有個初步的認識。單線程 在好些年前的MS-DOS時代,作業系統處理問題都是單任務的,我想做聽音樂和看電影兩件事兒,那麼一定要先排一下順序。(好吧!我們不糾結在DOS時代是否有聽音樂和看影的應用。^_^)複製代碼 代碼如下:from time import ctime,sleepdef music(): for i in range(2):&
Time of Update: 2017-01-19
前2種方法主要用到了列表解析,效能稍差,而最後一種使用的時候產生器運算式,相比列表解析,更省記憶體列表解析和產生器運算式很相似:列表解析[expr for iter_var in iterable if cond_expr]產生器運算式(expr for iter_var in iterable if cond_expr) 方法1:最原始複製代碼 代碼如下:longest = 0f = open(FILE_PATH,"r")allLines = [line.strip() for
Time of Update: 2017-01-19
思路需要實現準備一份未受感染的原始碼和一份可能受感染的原始碼,然後運行以下指令碼,就能找出到底哪些檔案被掛馬了。其中,主要是根據比對2份檔案的md5值來過濾可能被掛馬的檔案(確切的說應該是被修改過的檔案)Python指令碼複製代碼 代碼如下:__author__ = 'Flying'#coding:utf-8#Date:2014.6.5#檢測修改過的檔案import os,sys,hashlib,datetimeglobal_DirOld = ""global_DirNew =
Time of Update: 2017-01-19
其中用到urllib2模組和Regex模組。下面直接上代碼:[/code]#!/usr/bin/env python#-*- coding: utf-8 -*-#通過urllib(2)模組下載網路內容import urllib,urllib2,gevent#引入Regex模組,時間模組import re,timefrom gevent import monkeymonkey.patch_all()def geturllist(url): url_list=[]
Time of Update: 2017-01-19
學習Python,基本文法不是特別難,有了C的基本知識,理解比較容易。本文的主要內容是Python基礎文法,學完後,能熟練使用就好。(開發環境依然是Python2.7,簡單使用)一,基本知識1,不需要預先定義資料類型(此說法值得商榷,姑且這麼說吧),這是與其他語言的最大不同(如C,C++,C#,Delphi等)複製代碼 代碼如下: >>> x=12 >>> y=13 >>> z=x+y >>
Time of Update: 2017-01-19
Python入門 本系列為Python學習相關筆記整理所得,IT人,多學無害,多多探索,激發學習興趣,開拓思維,不求高大上,只求懂點皮毛,作為知識儲備,不至於落後太遠。 本文主要介紹Python的相關背景,環境搭建。一、瞭解Python 1,關於Python的語言特點:
Time of Update: 2017-01-19
因為突然有個邪惡的想法,想在自己的Android平板上面搭建一個DNS伺服器,因為平板上之前安裝過SL4A和Python的解譯器,也想繼續學學Python因此,就打算用Python實現了。在Google上面找了一下,Python實現的DNS,沒找到我所希望的答案,因此就決定自己來實現了。現在所實現的沒什麼高深的,只是能夠對A記錄查詢進行簡單的匹配和回複。實現的代碼如下:複製代碼 代碼如下:'''Created on 2012-10-15@author: RobinTang'''import
Time of Update: 2017-01-19
註:使用這個指令碼需要安裝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')
Time of Update: 2017-01-19
考慮到我手上的伺服器逐漸的增多,有時候需要大規模的部署同一個檔案,例如因為方便使用systemtap這個工具定位問題,需要把手上幾百台伺服器同時安裝kernel-debuginfo這個包,原有的方式採用一個原始伺服器,採用rsync或者scp之類的檔案傳輸方式只能做到一個點往下分發這個檔案,這個時候下發的速度就會比較的慢,基於以上原因,我寫了一個基於bt協議傳輸檔案的小工具,實際測試,傳輸到10個機房,70多台機器傳輸一個240M的這個核心檔案,到所有的機器,源採用限速2m/s的上傳速度,測試的
Time of Update: 2017-01-19
情境:某個檔案夾下麵包含數量巨大的檔案,需求需要將這些檔案按組(比如5000個一組)存放到不同的目錄中去。複製代碼 代碼如下:# Filename: CopyFiles.pyimport osimport os.pathfolder_capacity = 20def copy_files(src_dir, dest_dir): count = 0 current_folder = ''
Time of Update: 2017-01-19
直接上代碼:Server端:複製代碼 代碼如下: #!/usr/bin/env python # UDP Echo Server - udpserver.py import socket, traceback host = '' port = 54321 s = socket.socket(socket.AF_INET,
Time of Update: 2017-01-19
最近在做的一個項目中需要使用到HTML5中引入的WebSocket技術,本來以為應該很容易就能搞定,誰知道在真正上手開發了以後才發現有很多麻煩的地方,雖然我們是一個以前端開發和設計見長的團隊,而且作為一個二手程式猿又長期不被待見,但是為了讓有同樣需求的朋友少走些彎路,我還是決定把實現方法貼在這個地方。關於WebSocket的基本概念,維基百科上解釋的很清楚,而且網上也能搜出來一大把,這裡就略過不表,直接進入正題。這次的問題首先有一個前提,就是得用Python來實現這個伺服器,如果對具體語言沒有限
Time of Update: 2017-01-19
一、不要使用可變對象作為函數預設值複製代碼 代碼如下:In [1]: def append_to_list(value, def_list=[]): ...: def_list.append(value) ...: return def_list &
Time of Update: 2017-01-19
在大的互連網公司幹技術的基本都會碰到測試、預發布、線上這種多套環境的,來實現測試和線上正式環境的隔離,這種情況下,就難免會碰到秀逗了把測試的連結發布到線上的情況,一般這種都是通過一些測試的檢查工具來檢查連結來規避風險的。前兩天跟了一個問題也是這個情況,開發疏忽把日常url發布到線上了。但是測試那邊沒有自動化的監控工具,導致沒有及時發現,由於最近正好在看python,後來處理完回家就想用python做個簡單的監控。
Time of Update: 2017-01-19
在Linux上有個常用的命令 curl(非常好用),支援curl的就是大名鼎鼎的libcurl庫;libcurl是功能強大的,而且是非常高效的函數庫。libcurl除了提供本身的C API之外,還有多達40種程式設計語言的Binding,這裡介紹的PycURL就是libcurl的Python
Time of Update: 2017-01-19
實現簡單的多線程下載,需要關注如下幾點:1.檔案的大小:可以從reponse header中提取,如“Content-Length:911”表示大小是911位元組2.任務拆分:指定各個線程下載的檔案的哪一塊,可以通過request header中添加“Range: bytes=300-400”(表示下載300~400byte的內容),注意可以請求的檔案的range是[0,