zoukankan      html  css  js  c++  java
  • Python常用技巧

    1.字符串的join与split方法

    >>>name = ['my','name','is','monitor'] 
    >>>' '.join(name) 
    'my name is bob'  
    >>>'_'.join(name) 
    'my_name_is_monitor'
     
    >>> name = 'my..name..is..monitor' 
    >>> name.split() 
    ['my..name..is..monitor'] 
    >>> name.split("..") 
    ['my', 'name', 'is', 'monitor'] 
    >>> name.split("..",0) 
    ['my..name..is..monitor'] 
    >>> name.split("..",1) 
    ['my', 'name..is..monitor'] 
     
    2.with语句使用

    使用 with 语句,可以实现自动关闭文件、线程锁的自动获取和释放等。假设要对一个文件进行操作,使用 with 语句可以有如下代码:

    使用 with 语句操作文件对象
        with open('somefileName','r') as somefile:
            for line in somefile:
                print line
                # ...more code

    这里使用了 with 语句,不管在处理文件过程中是否发生异常,都能保证 with 语句执行完毕后已经关闭了打开的文件句柄。如果使用传统的 try/finally 范式,则要使用类似如下代码:

    try/finally 方式操作文件对象
        somefile = open('somefileName','r')
        try:
            for line in somefile:
                print line
                # ...more code
        finally:
            somefile.close()

    3.inspect模块

    1. 检查对象类型
    is{module|class|function|method|builtin}(obj): 
    检查对象是否为模块、类、函数、方法、内建函数或方法。
    isroutine(obj):

    2. 获取对象信息
    getmembers(object[, predicate]): 
    这个方法是dir()的扩展版,它会将dir()找到的名字对应的属性一并返回,形如[(name, value), ...]。另外,predicate是一个方法的引用,如果指定,则应当接受value作为参数并返回一个布尔值,如果为False,相应的属性将不会返回。使用is*作为第二个参数可以过滤出指定类型的属性。
    getmodule(object): 
    它返回object的定义所在的模块对象。
    get{file|sourcefile}(object): 
    获取object的定义所在的模块的文件名|源代码文件名(如果没有则返回None)。用于内建的对象(内建模块、类、函数、方法)上时会抛出TypeError异常。
    get{source|sourcelines}(object): 
    获取object的定义的源代码,以字符串|字符串列表返回。代码无法访问时会抛出IOError异常。只能用于module/class/function/method/code/frame/traceack对象。
    getargspec(func): 
    仅用于方法,获取方法声明的参数,返回元组,分别是(普通参数名的列表, *参数名, **参数名, 默认值元组)。如果没有值,将是空列表和3个None。如果是2.6以上版本,将返回一个命名元组(Named Tuple),即除了索引外还可以使用属性名访问元组中的元素。 
    getargvalues(frame): 
    仅用于栈帧,获取栈帧中保存的该次函数调用的参数值,返回元组,分别是(普通参数名的列表, *参数名, **参数名, 帧的locals())。如果是2.6以上版本,将返回一个命名元组(Named Tuple),即除了索引外还可以使用属性名访问元组中的元素。 
    getcallargs(func[, *args][, **kwds]): 
    返回使用args和kwds调用该方法时各参数对应的值的字典。这个方法仅在2.7版本中才有。
    getmro(cls): 
    返回一个类型元组,查找类属性时按照这个元组中的顺序。如果是新式类,与cls.__mro__结果一样。但旧式类没有__mro__这个属性,直接使用这个属性会报异常,所以这个方法还是有它的价值的。 返回当前的栈帧对象。

     
    4.python3中bytes与string的互相转换
    按utf-8的方式编码,转成bytes
    url = "www.baidu.com"
    url = url.encode('UTF-8')
    按utf-8的方式编码,转成str
    url = url.decode('UTF-8')
     

    5.通过源代码安装Python3.4,make install时报错"Ignoring ensurepip failure: pip 1.5.4 requires SSL/TLS"。

    缺少openssl,openssl-devel(Ubuntu下为libssl-dev),通过yum -y install openssl openssl-devel安装后,重新编译安装即可。

    6.Python在交互模式下方向键显示乱码查找得知,是由于系统缺少了readline相关模块。CentOS6.5默认只安装了readline模块而没有安装readline-devel模块,所以只要安装下即可。

    #安装readline-devel
    $yum install readline-devl

    #重新安装python

    $./configure

    $sudo make 

    $sudo make install
     
    7.获取本地时间
    time.strftime('%Y-%m-%d',time.localtime(time.time())) 

    8.import  sqlite3报错

    yum install sqlite-devel

    重新安装python3

  • 相关阅读:
    【MM 】采购合同成批维护
    【FICO 汇率】汇率
    【S4 MM】S4中继续使用MB系统事务代码(转)
    【MM 交货成本】Unplanned Delivery Cost
    Tracer Deployment UVALive
    The Best Path HDU
    Artwork Gym
    PTA 银行排队问题之单队列多窗口加VIP服务 队列+模拟
    Counting Cliques HDU
    Do not pour out HDU
  • 原文地址:https://www.cnblogs.com/Monitor/p/4026188.html
Copyright © 2011-2022 走看看