• python包


    有个伟人说过:

    python的学习很大一部分取决与你对第三方包的熟悉和掌握程度!

    virtualenv

    virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响,它能够:
    1. 在没有权限的情况下安装新套件
    2. 不同应用可以使用不同的套件版本
    3. 套件升级不影响其他应用

    http://liuzhijun.iteye.com/blog/1872241

    1,安装配置
    sudo pip install virtualenvwrapper
    
        创建目录用来存放虚拟环境
    
        mkdir $HOME/.virtualenvs
    
        在~/.bashrc中添加行: export WORKON_HOME=$HOME/.virtualenvs
    
        在~/.bashrc中添加行:source /usr/local/bin/virtualenvwrapper.sh
    
        运行: source ~/.bashrc
    
    2,使用
    列出虚拟环境列表: workon
    
    也可以使用:lsvirtualenv
    
    新建虚拟环境:mkvirtualenv [虚拟环境名称]
    
    启动/切换虚拟环境:workon [虚拟环境名称]
    
    删除虚拟环境:rmvirtualenv [虚拟环境名称]
    
    离开虚拟环境:deactivate

    chardet

    功能:字符串/文件编码检测模板

    下载:(http://pypi.python.org/pypi/chardet)

    用法:chardet.detect() 返回字典,其中confidence是检测精确度,encoding是编码形式

    libxml2

    功能:解析xml文件,在公司解析pptv网站的时候用到。

    下载: ~~~~~~

    用法:

        html = urllib.urlopen(url).read()
        ...
        #转码
        ...
        encoding = 'utf-8'
        options = libxml2.HTML_PARSE_RECOVER | libxml2.HTML_PARSE_NOERROR 
                | libxml2.HTML_PARSE_PEDANTIC | libxml2.HTML_PARSE_NONET 
                | libxml2.HTML_PARSE_NOWARNING
        doc = libxml2.htmlReadMemory(html, len(html), None, encoding, options)
        
        context = doc.xpathNewContext()
        re_list = context.xpathEval(xpath_title) #xpath_title = "//*div[@class='movieinfo']/p/a/@title"
        print re_list.getContent(), re_list.xpathCastNodeToString()
        print re_list[0].content
        if doc:
            doc.freeDoc()


    ConfigParser:

    功能:读取ini配置文件

    用法:

    cf = ConfigParser.ConfigParser()
    cf.read("conf.ini")
    #获取节点内容
    cf.get("db", "db_host")
    cf.getint("db", "db_port")
    '''
    getfloat getboolean(yes, on, true, 1; no, off, false, 0)
    '''
    
    # 增加section,设置option
    cf.add_section('db2')
    cf.set("db2", "pass", "123")
    
    # 移除section,option
    cf.remove_option('db2','pass')
    cf.remove_section('db2')
    
    # 写回文件
    cf.write(open("conf.ini", "w")) #写回操作对对原来文件破坏,既原文件排版方式改变

      multiprocessing

    功能:多进程执行程序

    用法:

    import multiprocessing as mul
    
    def f(x):
        return x**2
    
    pool = mul.Pool(5)
    rel  = pool.map(f,[1,2,3,4,5,6,7,8,9,10])  #将f()函数作用到表的每个元素上
    
    res = pool.apply_async(func,args) #从进程池中取出一个进程执行func,args为func的参数。它将返回一个AsyncResult的对象,你可以对该对象调用get()方法以获得结果。
    print res.get()
    
    pool.close()  #进程池不再创建新的进程
    pool.join()   #wait进程池中的全部进程。必须对Pool先调用close()方法才能join

    nosetests

    unittest2

     python -m cProfile 查看性能

     python -m SimpleHTTPServer 搭建http服务

     

    timeit

    python的计时模块,可以用来获取某条语句或某个函数的运行速度,得以分析性能。

    基本使用方法:

    import timeit
    
    def test_range(n):
        sum = 0
        for i in range(n):
            sum += i
        return sum
    
    def test_xrange(n):
        sum = 0
        for i in xrange(n):
            sum += i
        return sum
    
    t_range = timeit.Timer("test_range(100)", "from __main__ import test_range");
    t_xrange = timeit.Timer("test_xrange(100)", "from __main__ import test_xrange");
    
    print(t_range.timeit())
    print(t_xrange.timeit())
    
    print(t_range.repeat(3, 10000))
    print(t_xrange.repeat(3, 10000))
    View Code

    主要有三个方法:

    1,Timer: 输入两个参数,第一个是你要计时的语句或函数,第二个是你参数语句构建环境的导入语句。

    2,有了Timer对象,你可以调用timeit函数,默认返回执行你的函数一百万次所消耗的秒数。

    3,Timer对象可以调用repeat函数,它接受两个可选参数。第一个参数是重复整个测试的次数,第二个参数是每个测试中调用被计时语句的次数。两个参数都是可选的,它们的默认值分别是 31000000repeat() 方法返回以秒记录的每个测试循环的耗时列表。

  • 相关阅读:
    Java
    Java
    Java
    Java
    Java
    Hang Gliding线段树
    Biggest Number深搜
    2021年暑假康复性训练(Codeforces Round #731 (Div. 3))全题解
    Python GUI tkinter 随机生成题目
    ModuleNotFoundError: No module named ‘exceptions‘ 情况解决
  • 原文地址:https://www.cnblogs.com/silencExplode/p/3556789.html
Copyright © 2020-2023  润新知