您的位置:新葡亰496net > 奥门新萄京娱乐场 > 新葡亰496net:标准库和第三方库,Python学习笔记

新葡亰496net:标准库和第三方库,Python学习笔记

发布时间:2019-06-16 03:47编辑:奥门新萄京娱乐场浏览(53)

    被人工智能捧红的 Python 已是一种发展完善且非常多样化的语言,其中肯定有一些你尚未发现的功能。本文或许能够让你学到一些新技巧。

    新葡亰496net 1

    本文来自 我的博客。博客的文章保持更新,此文可能不是最新状态。

    Python 编码

    1. a = u'ab'
      b = "ab"
      如何互转?
    2. unicode声明
    # -*- coding: utf-8 -*-
    
    1. join unicode

    2. 用chardet检测编码格式

    Python 标准库和第三方库

    Python 是世界上最流行、热门的编程语言之一,原因很多,比如:

    Python是世界上最受欢迎,最流行的编程语言之一。这有很多原因:

    下载、解压 python 源代码

    从 python.org 下载。

    Python编码

    urllib2

    文档:

    • http://zhuoqiang.me/python-urllib2-usage.html
    • https://docs.python.org/2/library/urllib2.html
    • 易于学习
    • 超高的通用性
    • 具备大量模块和库

    它很容易学习

    导入交叉编译 patch

    参考自 python-2.7-001-support-for-build.patch,2.7.11 的修改地方有稍微变化,详见如下 patch。

    Python 虽然使用 autoconf,但是事实上代码中已经包含 configure 文件,因此下文代码给出的是修改 configure.ac 并执行 autoconf 后生成的 configure 文件。

    patch 的使用方法,在 python 源代码根目录下执行:

    patch -p1 < ../0001-cross-compile.patch
    

    python 2.7.11 交叉编译 patch:

    diff --git a/Makefile.pre.in b/Makefile.pre.in
    index ee73edd..730db7e 100644
    --- a/Makefile.pre.in
        b/Makefile.pre.in
    @@ -237,7  237,8 @@ LIBFFI_INCLUDEDIR=  @LIBFFI_INCLUDEDIR@
    
     ##########################################################################
     # Parser
    -PGEN=      Parser/pgen$(EXE)
     BUILDPGEN=     Parser/pgen$(EXE)
     PGEN_FOR_BUILD=    @PGEN_FOR_BUILD@
    
     PSRCS=     
            Parser/acceler.c 
    @@ -635,14  636,14 @@ Modules/pwdmodule.o: $(srcdir)/Modules/pwdmodule.c $(srcdir)/Modules/posixmodule
    
     $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGENSRCS)
            @$(MKDIR_P) Include
    -       $(MAKE) $(PGEN)
    -       $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
            $(MAKE) $(BUILDPGEN)
            $(PGEN_FOR_BUILD) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
     $(GRAMMAR_C): $(GRAMMAR_H) $(GRAMMAR_INPUT) $(PGENSRCS)
            $(MAKE) $(GRAMMAR_H)
            touch $(GRAMMAR_C)
    
    -$(PGEN):   $(PGENOBJS)
    -       $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
     $(BUILDPGEN):  $(PGENOBJS)
            $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(BUILDPGEN)
    
     Parser/grammar.o:  $(srcdir)/Parser/grammar.c 
                    $(srcdir)/Include/token.h 
    diff --git a/configure b/configure
    index 7dab897..bf16c0e 100755
    --- a/configure
        b/configure
    @@ -734,6  734,7 @@ UNIVERSALSDK
     CONFIG_ARGS
     SOVERSION
     VERSION
     PGEN_FOR_BUILD
     PYTHON_FOR_BUILD
     host_os
     host_vendor
    @@ -2911,6  2912,13 @@ else
     fi
    
    
     if test "$cross_compiling" = yes; then
         PGEN_FOR_BUILD="${PGEN_FOR_BUILD}"
     else
         PGEN_FOR_BUILD='$(BUILDPGEN)'
     fi
     
     
    
     if test "$prefix" != "/"; then
         prefix=`echo "$prefix" | sed -e 's//$//g'`
    @@ -6334,6  6342,12 @@ fi
    
    
     # Enable PGO flags.
     
     
     
     
     
     
     # Extract the first word of "llvm-profdata", so it can be a program name with args.
     set dummy llvm-profdata; ac_word=$2
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
    -- 
    1.9.1
    

    类型

    python-requests

    http://docs.python-requests.org/zh_CN/latest/user/quickstart.html

    本文将分享一些使用 Python 的技巧,顺序按照 A-Z 排列。

    它是超级多用途的

    创建 build 目录

    在 python 源代码下创建 build-pcbuild-mips 目录,分别用于编译 PC pgen(交叉编译时用到)与交叉编译 mips python。该目录做 configure、make、make install,编译时用于保存临时生成的文件,保证 python 源代码干净。

    python的函数特性

    1. map

    BeautifulSoup

    简介: 从HTML或XML文件中提取数据,解析网页数据,可用作爬虫

    文档: https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html

     1.all or any

    Python 非常受欢迎的原因之一是其可读性和表达性。

    人们还经常把 Python 笑称为「可执行伪码(executable pseudocode)」。但是,当你可以编写这样的代码时,很难去反驳这种言论:

    x = [True, True, False]
    if any(x):
        print("At least one True")
    if all(x):
        print("Not one False")
    if any(x) and not all(x):
        print("At least one True and one False")
    

      

    它有大量的模块和库

    编译本地 Python 与 pgen

    用于生成 grammar 所需要文件用。

    cd build-pc
    
    ../configure CC=gcc CXX=g   AR=ar RANLIB=ranlib LDFLAGS="-L/usr/lib -L/usr/lib64 -L/usr/local/lib -L/usr/local/lib64" CFLAGS="-I/usr/include -I/usr/local/include"
    
    make python Parser/pgen
    

    pyquery

    https://pypi.python.org/pypi/pyquery
    api : http://pyquery.readthedocs.org/en/latest/api.html

    TypeError: Type 'unicode' cannot be serialized.

    给两个list,一个是word list, 一个是prefix list return 所有的word that have the prefix 例子: word list = [“a", "abc", "dz", "dda], prefix list = ["ab", "dd"] return ["abc", "dda"]

    Python干货精选 http://baoz.me/446252
    当我说我会Python时,实际上我会了什么?

    splinter

    简介: 模拟浏览器操作网页行为

    文档: https://splinter.readthedocs.org/en/latest/

     2.bashplotlib

    想在控制台中绘图吗?

    $ pip install bashplotlib
    

     

    使用上面的行,即可在控制台中绘图。

     

    作为数据科学家的我,每天使用Python是我内在工作的一部分。在这个过程中,我学会了一些有用的技巧和心得。

    配置

    遍历目录

    os.walk

    import os,sys
    for root, dirs, files in os.walk("."):
    for f in files:
    fullpath = "%s/%s" % (root, f)
    if fullpath.endswith("java"):
    print fullpath
    #os.system("dos2unix "   fullpath)
    temp = fullpath[:-1]
    #command = "expand -t 4 "   fullpath   " > "   temp
    command = "rm -rf "   fullpath
    command = "sed -i 's/ *$//' "   fullpath
    #print command
    os.system(command)
    

    paramiko

    简介: ssh操作模块

    文档:

    • http://www.paramiko.org/
    • https://github.com/paramiko/paramiko/
    • http://www.361way.com/python-paramiko-ssh/3984.html

    3.collections

    Python 有一些很棒的默认数据类型,但有时候它们可能不会尽如你意。

    不过,Python 标准库提供了 collections 模块。这个方便的附加组件可以为你提供更多数据类型。

    collections 模块:https://docs.python.org/3/library/collections.html

    from collections import OrderedDict, Counter
    # Remembers the order the keys are added!
    x = OrderedDict(a=1, b=2, c=3)
    # Counts the frequency of each character
    y = Counter("Hello World!")
    

       

    在这里,我尝试以A~Z顺序共享其中一些。

    配置交叉编译环境变量

    比如 CC、CFLAGS、LDFLAGS 等。

    性能:

    High Performance Python: Practical Performant Programming for Humans

    cookielib

    简介: 保存cookie

    文档:

    • https://docs.python.org/2/library/cookielib.html
    • http://cuiqingcai.com/968.html
    • https://blog.phpgao.com/python-cookielib.html

    4.dir

    你是否想过如何查看 Python 对象内部及其具有哪些属性?

    输入以下命令行:

    >>> dir()
    >>> dir("Hello World")
    >>> dir(dir)
    

    当以交互方式运行 Python 时,这可能是一个非常有用的功能,并且可以动态地探索你正在使用的对象和模块。

    想要了解更多,点这里:https://docs.python.org/3/library/functions.html#dir

     

    大多数这些“技巧”是我在日常工作中使用或偶然发现的事情。一些是我在浏览Python标准库文档时发现的。另外一些是通过PyPi搜索到的。

    configure 配置

    配置命令如下:
    configure 的 prefix 只支持绝对路径。

    cd build-mips
    
    ../configure --host=mips64-octeon-linux-gnu --build=x86_64-linux-gnu --prefix=/home/sunyongfeng/python-install --disable-ipv6 ac_cv_file__dev_ptmx=no ac_cv_file__dev_ptc=no ac_cv_have_long_long_format=yes PGEN_FOR_BUILD=../build-pc/Parse/pgen
    

    问题:

    • --enable-FEATURE,不清楚有哪些 features ,怎么配置;
    • --enable-PACKAGE,不清楚有哪些 package,怎么配置。

    配置完了之后,在 Modules 目录会生成 Setup 文件。x86 的默认编译会编译到必须的模块,而 mips64 的交叉编译很多模块没有编译下,如 socket 等。修改 Modules/Setup 文件,定制想编译的内置模块。以下是基础模块,目前还不清楚如果不想内置的话要如何编译。
    定制内置模块,参见这篇博文 《定制 Python 嵌入 C : (四) 定制 Python 内建模块》,讲述各个内置模块的功能。

    # Modules that should always be present (non UNIX dependent):                                       
    
    array arraymodule.c # array objects                                                                 
    cmath cmathmodule.c _math.c # -lm # complex math library functions                                  
    math mathmodule.c _math.c # -lm # math library functions, e.g. sin()                                
    _struct _struct.c   # binary structure packing/unpacking                                            
    time timemodule.c # -lm # time operations and variables                                             
    operator operator.c # operator.add() and similar goodies                                            
    _testcapi _testcapimodule.c    # Python C API test module                                           
    _random _randommodule.c # Random number generator                                                   
    _collections _collectionsmodule.c # Container types                                                 
    _heapq _heapqmodule.c       # Heapq type                                                            
    itertools itertoolsmodule.c # Functions creating iterators for efficient looping                    
    strop stropmodule.c     # String manipulations                                                      
    _functools _functoolsmodule.c   # Tools for working with functions and callable objects             
    _elementtree -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI _elementtree.c  # elementtree accelerator
    #_pickle _pickle.c  # pickle accelerator                                                            
    datetime datetimemodule.c   # date/time type                                                        
    _bisect _bisectmodule.c # Bisection algorithms                                                      
    
    unicodedata unicodedata.c    # static Unicode character database
    

    profile:

    7 个测量 Python 脚本和控制内存以及 CPU 使用率的技巧

    random

    5.emoji

    是的,真的有。请点击这里:https://pypi.org/project/emoji/

    $ pip install emoji
    

     

    别以为我不知道你会偷偷试它→→

    from emoji import emojize
    print(emojize(":thumbs_up:"))
    

    本文由新葡亰496net发布于奥门新萄京娱乐场,转载请注明出处:新葡亰496net:标准库和第三方库,Python学习笔记

    关键词:

上一篇:Python基础的学习,与Python的初次见面

下一篇:没有了