在web開發(fā)中經(jīng)常用到驗證碼,為了防止機器人注冊或者惡意登陸和查詢等,作用不容小覷但是驗證碼其實不是一個函數(shù)就能搞定的,它需要生成圖片和水印,其實每種語言都有相關(guān)的函數(shù)生成圖片和文字水印。包括我熟悉的php,呵呵,今天主要來分享如何用python生成驗證碼。python生成驗證碼主要用到如下模塊:Image,ImageDraw,ImageFont,ImageFilter和隨機數(shù)生成模塊Random。代碼如下:#!/usr/bin/envpython#cod
系統(tǒng) 2019-09-27 17:48:19 1886
python的fnmatch還真是省心,相比于java中的FilenameFilter,真是好太多了,你完成不需要去實現(xiàn)什么接口。fnmatch配合os.walk()或者os.listdir(),你能做的事太多了,而且用起來相當(dāng)easy。#coding:utf-8"""遍歷C盤下的所有dll文件"""importosimportfnmatchdefmain():f=open('dll_list.txt','w')forroot,dirs,filesinos
系統(tǒng) 2019-09-27 17:48:05 1886
創(chuàng)建Deque序列:fromcollectionsimportdequed=deque()Deque提供了類似list的操作方法:d=deque()d.append('1')d.append('2')d.append('3')len(d)d[0]d[-1]輸出結(jié)果:3'1''3'兩端都使用pop:d=deque('12345')len(d)d.popleft()d.pop()d輸出結(jié)果:5'1''5'deque(['2','3','4'])我們還可以限制d
系統(tǒng) 2019-09-27 17:47:59 1886
本文較為詳細的介紹了python中raw_input的用法,使用raw_input能夠很方便的叢控制臺讀入數(shù)據(jù)。具體用法示例如下:1.輸入字符串#13222319810101****nID=''while1:nID=raw_input("Inputyouridplz")iflen(nID)!=len("13222319810101****"):print'wringlengthofid,inputagain'else:breakprint'youridis
系統(tǒng) 2019-09-27 17:47:47 1886
引言logging的基本用法網(wǎng)上很多,這里就不介紹了。在引入正文之前,先來看一個需求:假設(shè)需要將某功能封裝成類庫供他人使用,如何處理類庫中的日志?數(shù)年前在一個C#開發(fā)的項目中,我用了這樣的方法:定義一個logging基類,所有需要用到日志的類都繼承這個基類,這個基類中定義一個LogHandler事件,該事件用于實現(xiàn)具體的記錄日志動作,同時可以通過將類A的LogHandler委托掛到類B的LogHandler上,實現(xiàn)將兩個類的日志信息添加到一起。自從看了py
系統(tǒng) 2019-09-27 17:47:37 1886
本人python新手,使用的環(huán)境是python2.7,勿噴復(fù)制代碼代碼如下:#-*-coding:utf8-*-importrandomimportstringimportsysreload(sys)sys.setdefaultencoding("utf8")defrandom_number():pwnumber=input("請輸入需要密碼個數(shù):")pwlength=input("請輸入需要密碼長度:")ifpwlength<=10:foriinrang
系統(tǒng) 2019-09-27 17:47:14 1886
Python進行Redis數(shù)據(jù)遷移由于開發(fā)時的誤操作,導(dǎo)致redis數(shù)據(jù)損壞,所以需要進行redis的數(shù)據(jù)遷移,網(wǎng)上大佬的教程基本都是需要下載附加工具,亦或是需要一些復(fù)雜的操作,個人覺得麻煩還不如寫個腳本來的經(jīng)濟實惠。#-*-coding:utf-8-*-fromredisimportStrictRedis"""redis是用于操作Redis的第三方庫,StrictRedis是官方推薦的方法,而且Redis是它的子類,Redis能做到的StrictRedi
系統(tǒng) 2019-09-27 17:46:53 1886
PythonSocket模塊中包含一些有用IP轉(zhuǎn)換函數(shù),說明如下:socket.ntohl(x)//類似于C語言的ntohl(x)把32位正整數(shù)從網(wǎng)絡(luò)序轉(zhuǎn)換成主機字節(jié)序。socket.ntohs(x)//類似于C語言的ntohs(x)把16位正整數(shù)從網(wǎng)絡(luò)序轉(zhuǎn)換成主機字節(jié)序。socket.htonl(x)//類似于C語言的htonl(x)把32位正整數(shù)從主機字節(jié)序轉(zhuǎn)換成網(wǎng)絡(luò)序。socket.htons(x)//類似于C語言的htons(x)把16位正整數(shù)從主
系統(tǒng) 2019-09-27 17:46:35 1886
在表達式中引用變量時,Python會按照如下的順序遍歷各個作用域,尋找該變量:當(dāng)前函數(shù)作用域任何外圍作用域(比如包含當(dāng)前函數(shù)的其他函數(shù))global作用域,即代碼所在的模塊的作用域如果上述作用域內(nèi)都找不到變量,就會報NameError異常。但是對變量賦值時,規(guī)則會有所不同。如果當(dāng)前作用域變量已存在,那么其值會被替換。如果不存在,則會視為在當(dāng)前作用域定義新變量,而不是向外圍作用域中尋找。如下函數(shù)deffunction():flag=Truedefhelper
系統(tǒng) 2019-09-27 17:46:14 1886
內(nèi)置函數(shù):Built-inFunctionsabs()all()any()ascii()bin()1.abs(x)返回x的絕對值。參數(shù)可以是整數(shù)或浮點數(shù)。如果參數(shù)是復(fù)數(shù),則返回其大小。importmathprint('abs(45)的值:',abs(45))print('abs(-45)的值:',abs(-45))print('abs(45+23)的值:',abs(45+23))print('abs(math.pi)的值:',abs(math.pi))輸出
系統(tǒng) 2019-09-27 17:46:09 1886