Time of Update: 2017-01-19
然後我們在Interactive Python prompt中測試了一下:>>> import subprocess >>> subprocess.check_call("false") 0而在其他機器運行相同的代碼時, 卻正確的拋出了錯誤:>>> subprocess.check_call("false") Traceback (most recent call last): File "", line 1, in
Time of Update: 2017-01-19
本文詳述了Python的import機制,對於理解Python的運行機制很有協助!1.標準import:Python中所有載入到記憶體的模組都放在 sys.modules 。當 import 一個模組時首先會在這個列表中尋找是否已經載入了此模組,如果載入了則只是將模組的名字加入到正在調用 import 的模組的 Local 名字空間中。如果沒有載入則從 sys.path 目錄中按照模組名稱尋找模組檔案,模組可以是py、pyc、pyd,找到後將模組載入記憶體,並加到 sys.modules
Time of Update: 2017-01-19
一般來說Python的eval()函數可以把字串“123”變成數字類型的123,但是PP3E上說它很危險,還可以執行其他命令!對此進行一些實驗。果然,如果python寫的cgi程式中如果使用eval()而非int()來轉換諸如年齡這樣的輸入框中的內容時是非常危險的。不僅可以看見列出系統的全部檔案,還可以執行刪除檔案,察看檔案原始碼等危險操作!試著寫了個程式,想把本地的指令檔同過這樣的形式一行一行的寫到伺服器的某個檔案裡,可最後失敗在無法輸入分行符號"/n",在提交的語句裡只要有分行符號,就會出現
Time of Update: 2017-01-19
本文簡單介紹了Python繪圖庫Matplotlib的安裝,簡介如下:matplotlib是python最著名的繪圖庫,它提供了一整套和matlab相似的命令API,十分適合互動式地進行製圖。Matplotlib的安裝可以參見:官網連結 http://matplotlib.org/users/installing.html安裝總結步驟如下:windows 平台上下載.exe格式 直接安裝。1.python下載安裝
Time of Update: 2017-01-19
本文針對Python的全域變數實現方法簡述如下:先來看下面一段測試程式:count = 0def Fuc(count): print count count += 1for i in range(0, 10): Fuc(count)運行結果是:>>>0000000000很顯然,這並不是我們想要的結果。針對這一問題的解決方案就是採用全域變數:global aa = 3def Fuc(): global a print a a = a + 1if __name__ ==
Time of Update: 2017-01-19
本文介紹Python實現連接埠複用執行個體如下所示:#coding=utf-8import socketimport sysimport selectimport threadinghost='192.168.99.100'port=80class Thread(threading.Thread): def __init__(self,buf,sockfd): threading.Thread.__init__(self) self.buf=buf
Time of Update: 2017-01-19
首先下載源tar包可利用linux內建下載工具wget下載,如下所示:wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz下載完成後到下載目錄下,解壓tar -zxvf Python-2.7.3.tgz進入解壓縮後的檔案夾cd Python-2.7.3在編譯前先在/usr/local建一個檔案夾python27(作為python的安裝路徑,以免覆蓋老的版本)mkdir
Time of Update: 2017-01-19
Python的互動式命令列可通過開機檔案來配置。當Python啟動時,會尋找環境變數PYTHONSTARTUP,並且執行該變數中所指定檔案裡的程式碼。該指定檔案名稱以及地址可以是隨意的。按Tab鍵時會自動補全內容和命令曆史。這對命令列的有效增強,而這些工具則是基於readline模組實現的(這需要readline程式庫輔助實現)。此處為大家舉一個簡單的啟動指令檔例子,它為python命令列添加了按鍵自動補全內容和曆史命令功能。[python@python ~]$ cat
Time of Update: 2017-01-19
自己隨手寫了Python下 fork 進程的測試代碼(來說明這個問題不一定完全合適):def fork(a): def now(): import datetime return datetime.datetime.now().strftime("%S.%f") import os import time print now(), a if os.fork() == 0: print '子進程[%s]:%s' % (now(), os.getpid()) while 1: a-=10
Time of Update: 2017-01-19
先從搭建環境開始。作為一個Python初學者來說,一個趁手的編譯器是很重要的,本想用VS來開發Python,但是感覺實際開發中沒有幾家公司會用VS來開發Python,沒辦法就換成了MyEclipse。一、首先下載和安裝Myeclipse就略過了。二、安裝Python。 一般的開發環境是在linux,網上很多教程和視頻也都是在linux下配置和開發的。我的開發環境是64位win8系統,先從官網下載64位的Python安裝程式。可以從這裡選擇要下載的版本
Time of Update: 2017-01-19
第一招:蛇打七寸:定位瓶頸首先,第一步是定位瓶頸。舉個簡單的栗子,一個函數可以從1秒最佳化到到0.9秒,另一個函數可以從1分鐘最佳化到30秒,如果要花的代價相同,而且時間限制只能搞定一個,搞哪個?根據短板原理,當然選第二個啦。一個有經驗的程式員在這裡一定會遲疑一下,等等?函數?這麼說,還要考慮調用次數?如果第一個函數在整個程式中需要被調用100000次,第二個函數在整個程式中被調用1次,這個就不一定了。舉這個栗子,是想說明,程式的瓶頸有的時候不一定一眼能看出來。還是上面那個選擇,程式員的你應該有
Time of Update: 2017-01-19
這兩天在用python寫一個採集器,有個功能模組是html代碼轉換為ubb,網上貌似沒有現成程式,就自己寫了個函數,順便鍛煉下自己的正則。import redef Html2UBB(content):#以下是將html標籤轉為ubb標籤pattern = re.compile( '<a href=\"([sS]+?)\"[^>]*>([sS]+?)</a>',re.I)content =
Time of Update: 2017-01-19
API:statuses/public_timeline 返回最新的200條公用微博,返回結果非完全即時CODE:#!/usr/bin/python # -*- coding: utf-8 -*-'''Created on 2014-7-3@author: guaguastd@name: statuses_public_timeline.py'''def public_timeline(weibo_api, count): #public_timeline = weibo_api.
Time of Update: 2017-01-19
python socket.error: [Errno 10054] 遠程主機強迫關閉了一個現有的串連。問題解決方案:前幾天使用python讀取網頁。因為對一個網站大量的使用urlopen操作,所以會被那個網站認定為攻擊行為。有時就不再允許下載。導致urlopen()後,request.read()一直卡死在那裡。最後會拋出errno 10054.這個錯誤是connection reset by
Time of Update: 2017-01-19
說檢查點,其實就是對過去曆史的記錄,可以認為是log.不過這裡進行了簡化.舉例來說,我現在又一段文本.文本裡放有一堆堆的連結地址.我現在的任務是下載那些地址中的內容.另外因為網路的問題或者網站的問題,每次下載可能不會非常的成功.有可能出現斷鏈或者socket異常錯誤。不過不管產生什麼樣的錯誤,我都希望我的程式能夠一直跑下去。或者能停掉後,繼續從為下載的連結處跑。而不是從開始的地方跑。這個問題非常簡單。因為這些連結是上下文無關的(上下文有關的情況要另外分析)。所以我只要記錄程式運行停止前的最後一條
Time of Update: 2017-01-19
項目編寫過程中,總能遇見對字典進行排序什麼的,如果要實現多條件排序只需要下面幾行代碼實現。充分體現了python的好處了。複製代碼 代碼如下:teamitems = [{'team':'France' , 'P':1 , 'GD':-3 , 'GS':1 , 'GA':4},
Time of Update: 2017-01-19
#/usr/bin/env python#-*- coding:utf-8 -*- """1.解析 crontab 設定檔中的五個數間參數(分 時 日 月 周),擷取他們對應的取值範圍2.將時間戳記與crontab配置中一行時間參數對比,判斷該時間戳記是否在配置設定的時間範圍內""" #$Id $ import re, time, sysfrom Core.FDateTime.FDateTime import FDateTime def
Time of Update: 2017-01-19
花了兩周時間,利用工作間隙時間,開發了一個基於Django的專案工作管理Web應用。專案計劃的即時動態,可以方便地被項目成員查看(^_^又重複發明輪子了)。從前台到後台,好好折騰了一把,用到:HTML、CSS、JavaScript、Apache、Python、mod_wsgi、Django。好久不用CSS和JavaScript了,感到有點生疏了,查了無數次手冊。後台Django開發環境的搭建也花了不少時間和精力。記錄下來,免得以後走彎路。同時給大家推薦一下Django架構,如果你想非常快速地編寫
Time of Update: 2017-01-19
好吧,我承認我是對晚上看到一張合適的票轉讓但打過電話去說已經被搞走了這件事情感到蛋疼。直接上檔案吧。#coding: utf-8'''春運查詢火車票轉讓資訊Author: piglei2007@gmail.comDate: 2011.01.25'''import reimport osimport timeimport urlparseimport datetimeimport tracebackimport urllib2import
Time of Update: 2017-01-19
分享一下剛遇到的一個小問題,我有一段類似於這樣的python代碼:複製代碼 代碼如下:# coding: utf-8class A(object): @property def _value(self):# raise