Time of Update: 2016-06-06
好吧,我知道是大半夜……,但我還是覺得趕緊花上半個小時,把這最新的想法分享出來是值得的~直接進入正題~我們來類比一個情境,需要你去抓去一個頁面,然後這個頁面有好多url也要分別去抓取,而進入這些子url後,還有資料要抓取。簡單點,我們就按照三層來看,那我們的代碼就是如下: 代碼如下:def func_top(url): data_dict= {} #在頁面上擷取到子url sub_urls = xxxx data_list = [] for it in sub_
Time of Update: 2016-06-06
Linux中進程的通訊方式有訊號,管道,共用記憶體,訊息佇列socket等。其中管道是*nix系統處理序間通訊的最古老形式,所有*nix都提供這種通訊方式。管道是一種半雙工的通訊機制,也就是說,它只能一端用來讀,另外一端用來寫;另外,管道只能用來在具有公用祖先的兩個進程之間通訊。管道通訊遵循先進先出的原理,並且資料只能被讀取一次,當此段資料被讀取後,馬上會從資料中消失,這一點很重要。Linux上,建立管道使用pipe函數,當它執行後,會產生兩個檔案描述符,分別為讀端和寫端。單個進程中的管道幾乎沒
Time of Update: 2016-06-06
1. 首先確認python的版本為2.3.4以上,如果不是需要升級python的版本 python -V 檢查python版本2. 安裝mysql, 比如安裝在/usr/local/mysql目錄下3. 下載 MySQL-python-1.2.2.tar.gz 地址 https://sourceforge.net/projects/mysql-python/4. 安裝 MySQl-python 代碼如下: tar xvzf MySQL-python-1.2.2.tar.gz
Time of Update: 2016-06-06
對於部署在百度應用引擎BAE上的項目,使用百度雲端儲存BCS(Baidu Cloud Storage)是不錯的儲存方案。百度雲端儲存已有Python SDK,對它進行簡單封裝後,就可以直接在Flask中使用了,項目代碼見GitHub上Flask-BCS。使用範例程式碼: 代碼如下:from flask import Flaskfrom flask_bcs import BCS BCS_HOST = 'BCS HOST'BCS_ACCESS_KEY = 'BCS Access
Time of Update: 2016-06-06
With語句是什嗎?有一些任務,可能事先需要設定,事後做清理工作。對於這種情境,Python的with語句提供了一種非常方便的處理方式。一個很好的例子是檔案處理,你需要擷取一個檔案控制代碼,從檔案中讀取資料,然後關閉檔案控制代碼。如果不用with語句,代碼如下: 代碼如下:file = open("/tmp/foo.txt")data =
Time of Update: 2016-06-06
對於小型網站,使用七牛雲端儲存的免費配額已足夠為網站提供穩定、快速的儲存服務七牛雲端儲存已有Python SDK,對它進行簡單封裝後,就可以直接在Flask中使用了,項目代碼見GitHub上Flask-QiniuStorage。使用範例程式碼: 代碼如下:from flask import Flaskfrom flask_qiniustorage import Qiniu QINIU_ACCESS_KEY = '七牛 Access Key'QINIU_SECRET_KEY = '七牛
Time of Update: 2016-06-06
今天在寫一個linux下自動備份指定目錄下的所有目錄的指令碼時,遇到了一個問題,由於我是需要備份目錄,所以,需要判斷掃描的檔案是否為目錄,當我用os.path.isdir()來判斷的時候,發現所有檔案均返回false,剛開始以為是系統相容性問題,進一步測試,發現用os.path.isfile(),這些檔案還是返回false,這肯定就是程式寫的有問題了,代碼如下:#!/usr/bin/env python# a python script to auto backup a directory's
Time of Update: 2016-06-06
問題是在Python中進行迴圈的時候產生的,熟悉Python的都知道,它沒有類似其它語言中的for迴圈, 只能通過for in的方式進行迴圈遍曆。最典型的應用就是通過range函數產生一個列表,然後用for in進行操作,如下: 代碼如下:#!/usr/bin/env pythonfor i in range(10): print i代碼的意義很好理解,range會產生一個列表,用for in最這個列表進行遍曆,就有和類似for(i = 0;i 代碼如下:測試代碼 佔用記憶體range(1
Time of Update: 2016-06-06
Socket的英文原義是“孔”或“插座”。作為BSD UNIX的進程通訊機制,取後一種意思。通常也稱作”通訊端”,用於描述IP地址和連接埠,是一個通訊鏈的控制代碼。在Internet上的主機一般運行了多個服務軟體,同時提供幾種服務。每種服務都開啟一個Socket,並綁定到一個連接埠上,不同的連接埠對應於不同的服務。Socket正如其英文原意那樣,像一個多孔插座。一台主機猶如布滿各種插座的房間,每個插座有一個編號,有的插座提供220伏交流電, 有的提供110伏交流電,有的則提供有線電視節目。
Time of Update: 2016-06-06
Python中使用SSH需要用到OpenSSH,而OpenSSH依賴於paramiko模組,而paramiko模組又依賴於pycrypto模組,因此要在Python中使用SSH,則需要先安裝模組順序是:pycrypto -> ecdsa -> paramiko1、安裝pyCrypto安裝這個比較麻煩,需要本地編譯,要裝vs或gcc還有一堆配置,還不一定能編譯成功。(網上能搜到安裝步驟)建議直接下載已編譯版:
Time of Update: 2016-06-06
If an object's value can be modified, the object is said to be mutable. If the value cannot be modified,the object is said to be immutable.mutable 可變類型,例如 list,set,自訂類型(等價於C#中的參考型別);immutable 不可變類型,例如string,numbers等(等價於C#中的實值型別);一、引用和拷貝(references
Time of Update: 2016-06-06
#-*- coding: utf-8 -*-import datetime#給定日期向後N天的日期def dateadd_day(days): d1 = datetime.datetime.now() d3 = d1 + datetime.timedelta(days) return d3#昨天def getYesterday(): today = datetime.date.today() oneday = datetime.timedelta(days=1) yesterday
Time of Update: 2016-06-06
本函數可以使用參數real +
Time of Update: 2016-06-06
一、執行個體和結果1)執行個體的結構和具體的檔案: 代碼如下:PyPackage│ PyCommonM.py│ __init__.py│├─p1Package│ P1M.py│ P1MC.py│ __init__.py│└─p2 P2.py P2M.py2)PyCommonM.py 代碼如下:def PyCommonMF(): print "PyCommonMF"3) P1M.py: 代碼如下:def P1MF(): print '
Time of Update: 2016-06-06
一、遠端程序呼叫RPC XML-RPC is a Remote Procedure Call method that uses XML passed via HTTP as a transport. With it, a client can call methods with parameters on a remote server (the server is named by a URI) and get back structured data. This module
Time of Update: 2016-06-06
在迴圈對象和函數對象中,我們瞭解了迴圈器(iterator)的功能。迴圈器是對象的容器,包含有多個對象。通過調用迴圈器的next()方法 (__next__()方法,在Python 3.x中),迴圈器將依次返回一個對象。直到所有的對象遍曆窮盡,迴圈器將舉出StopIteration錯誤。在for i in iterator結構中,迴圈器每次返回的對象將賦予給i,直到迴圈結束。使用iter()內建函數,我們可以將諸如表、字典等容器變為迴圈器。比如: 代碼如下:for i in iter([2, 4
Time of Update: 2016-06-06
使用: 代碼如下:foldercleanup.py -d 10 -k c:\test\keepfile.txt c:\test表示對c:\test目錄只保留最近10天的子檔案夾和keepfile.txt中指定的子檔案夾。代碼: 代碼如下:import osimport os.pathimport datetime def getOption(): from optparse import OptionParser des = "clean up the folder with
Time of Update: 2016-06-06
__isset() – 在對類中屬性或者非類中屬性使用isset()方法的時候如果沒有或者非公有屬性,則自動執行__isset()的方法__unset() - 在對類中屬性或者非類中屬性使用unset()方法的時候如果沒有或者非公有屬性,則自動執行__unset()的方法 代碼如下: /** * 針對類中的魔術方法 __isset() 和 __unset() 的例子 */class Example { public $public; protected
Time of Update: 2016-06-06
我從Stephen A. Goss那讀到關於了《Python 3正在毀滅Python》。這篇文章有不少精彩的論點,但我卻並不認為Python 3是在毀滅Python,也不認為整個局面對Python一點也不利。但是正如那些比較俗氣的格言所說,也許每一次危機也意味著一次機遇。也許Python 3能振興Python。顯然,麻煩的不僅僅是Python 2到Python
Time of Update: 2016-06-06
Python socket C/S結構的聊天室應用服務端:#!/usr/bin/env python#coding:utf8 import socket,selectdef broadcast_data (sock,message): for socket in conn_list: if socket != server_socket and socket != sock : try : socket.send(message) except :