第 2 章 crifanLib.py函数及用法详解

目录

2.1. 与时间(time,datetime等)有关的函数
2.1.1. 当前时间转换为时间戳:getCurTimestamp
2.1.2. 将时间戳转换为时间变量:timestampToDatetime
2.1.3. 计算某段代码执行所消耗的时间:calcTimeStart,calcTimeEnd
2.1.4. 将本地GMT8时间转换为GMT标准时间:convertLocalToGmt
2.2. 和字符串(str,unicode等)处理有关的函数
2.2.1. 从绝对路径中提取出文件名:extractFilename
2.2.2. 将实体定义替换为字符:repUniNumEntToChar
2.2.3. 生成全路径的URL地址:genFullUrl
2.2.4. 判断两个URL地址是否相似:urlIsSimilar
2.2.5. 判断一个Url地址是否和一个Url地址列表中的某个Url地址相似:findSimilarUrl
2.2.6. 去除非单词(non-word)的字符:removeNonWordChar
2.2.7. 去除控制字符:removeCtlChr
2.2.8. 将字符实体替换为Unicode数字实体:replaceStrEntToNumEnt
2.2.9. 将xxx=yyy转换为元祖(tuple)变量:convertToTupleVal
2.2.10. 去除列表(List)中的空值:removeEmptyInList
2.2.11. 列表去重(去除重复的值):uniqueList
2.2.12. 过滤列表(去除在b中出现的a中的某值):filterList
2.2.13. 生成随机数的字符串:randDigitsStr
2.2.14. 将元组列表转换为字典变量:tupleListToDict
2.3. 文件(file等)方面的函数
2.3.1. 将二进制数据存为文件:saveBinDataToFile
2.4. 网络方面的函数
2.4.1. 检查/判断/校验网络上某个文件是否有效:isFileValid
2.4.2. 下载网络上某个文件:downloadFile
2.4.3. (不用urlretrieve)手动从网络上下载单个文件:manuallyDownloadFile
2.4.4. 获得Url地址的响应:getUrlResponse
2.4.5. 获得Url返回的HTML网页(源码)内容:getUrlRespHtml
2.4.6. 检查(所返回的)cookieJar中,是否所有的cookie都存在:checkAllCookiesExist
2.5. 字符编码相关的函数
2.5.1. 判断字符串是否只包含ASCII字符:strIsAscii
2.5.2. 获得(最有可能的)字符串的字符编码类型:getStrPossibleCharset
2.6. 语言翻译方面的函数
2.6.1. 翻译(中文)字符串(为英文字符串):translateString
2.6.2. 将中文字符串翻译为英文字符串:transZhcnToEn
2.7. Beautifulsoup相关的函数
2.7.1. 从soup的Contents中移除某个(带某种属性的)标签: removeSoupContentsTagAttr
2.7.2. 查找contents中第一个NavigableString: findFirstNavigableString
2.7.3. 将soup的contents转换为Unicode字符串: soupContentsToUnicode

下面把所有的函数的用法,都简单解释一下:

[注意] crifanLib.py所包含的库

如果你在使用这些函数的遇到说某某函数,类等找不到,那很可能是没有导入对应的库。

所以在介绍之前,先贴出,目前crifanLib.py中所导入的一些库和函数:

import os;
import re;
import sys;
import time;
import chardet;
import urllib;
import urllib2;
from datetime import datetime,timedelta;
from BeautifulSoup import BeautifulSoup,Tag,CData;
import logging;
#import htmlentitydefs;
import struct;
import zlib;

# from PIL import Image;
# from operator import itemgetter;
    

2.1. 与时间(time,datetime等)有关的函数

2.1.1. 当前时间转换为时间戳:getCurTimestamp

from datetime import datetime,timedelta;

#------------------------------------------------------------------------------
# get current time's timestamp
def getCurTimestamp() :
    return datetimeToTimestamp(datetime.now());

#------------------------------------------------------------------------------
# convert datetime value to timestamp
# from "2006-06-01 00:00:00" to 1149091200
def datetimeToTimestamp(datetimeVal) :
    return int(time.mktime(datetimeVal.timetuple()));
        

例 2.1. getCurTimestamp使用范例

curTimestamp = getCurTimestamp();
jsonp = "jsonp" + str(curTimestamp);
            

2.1.2. 将时间戳转换为时间变量:timestampToDatetime

from datetime import datetime,timedelta;

#------------------------------------------------------------------------------
# convert timestamp to datetime value
# from 1149091200 to "2006-06-01 00:00:00"
def timestampToDatetime(timestamp) :
    #print "type(timestamp)=",type(timestamp);
    #print "timestamp=",timestamp;
    #timestamp = int(timestamp);
    timestamp = float(timestamp);
    return datetime.fromtimestamp(timestamp);
        

例 2.2. timestampToDatetime使用范例

createtimeFloat = float(createtimeMillisecond)/1000;
localTime = timestampToDatetime(createtimeFloat);
            

2.1.3. 计算某段代码执行所消耗的时间:calcTimeStart,calcTimeEnd

import time;

#------------------------------------------------------------------------------
#init for calculate elapsed time 
def calcTimeStart(uniqueKey) :
    global gVal

    gVal['calTimeKeyDict'][uniqueKey] = time.time();
    return

#------------------------------------------------------------------------------
# to get elapsed time, before call this, should use calcTimeStart to init
def calcTimeEnd(uniqueKey) :
    global gVal

    return time.time() - gVal['calTimeKeyDict'][uniqueKey];
        

例 2.3. calcTimeStart和calcTimeEnd的使用范例

calcTimeStart("export_head");
exportHead(blogInfoDic);
gVal['statInfoDict']['exportHeadTime'] = calcTimeEnd("export_head");
            

2.1.4. 将本地GMT8时间转换为GMT标准时间:convertLocalToGmt

from datetime import datetime,timedelta;

#------------------------------------------------------------------------------
# convert local GMT8 to GMT time
# note: input should be 'datetime' type, not 'time' type
def convertLocalToGmt(localTime) :
    return localTime - timedelta(hours=8);
        

例 2.4. convertLocalToGmt的使用范例

gmtTime = convertLocalToGmt(parsedLocalTime);