zoukankan      html  css  js  c++  java
  • python问题记录

    1、Linux环境下高亮打印:print "33[93mWARNING:33"
    2、断点:
    import pdb
    pdb.set-trace()
    3、self.assertEqual(a,b,msg=msg) #判断a与1.b是否一致,msg类似备注,可以为空
    4、lstrip([chars]) chars --指定截取的字符
    返回截掉字符串左边的空格或指定字符后生成的新字符串。
    str = " this is string example....wow!!!"
    print(str.lstrip()) #this is string example....wow!!!
    str = "88888this is string example....wow!!!"
    print(str.lstrip('8')) #this is string example....wow!!!
    str = "8885488this is string example....wow!!!"
    print(str.lstrip('8')) #5488this is string example....wow!!!
    5、str.lower(): 转换字符串中所有大写字符为小写

    6、json.dumps()函数是将一个Python数据类型列表进行json格式的编码
    json.loads()函数是将将已编码的 JSON 字符串解码为 Python 对象

    7、Python内置函数——__import__():
    函数功能用于动态的导入模块,主要用于反射或者延迟加载模块。
    __import__(module)相当于import module
    8、Python内置函数(25)——getattr():
    getattr(object, name[, default])
    函数功能是从对象object中获取名称为name的属性,等效与调用object.name。
    函数第三个参数default为可选参数,如果object中含义name属性,则返回name属性的值,如果没 有name属性,则返回default值,如果default未传入值,则报错
    9、setattr(object, name, values):给对象的属性赋值,若属性不存在,先创建再赋值
    hasattr(object, name):判断对象中是否有name的属性或方法,有返回True,没有返回false
    getattr(object, name[,default]):获取对象 object 的属性或者方法,若存在则打印出来;若不存在,则打印默认值,默认值可选。

    10、subprocess模块
    允许生成新的进程,连接到它们的 input/output/error 管道,并获取子进程的返回(状态)码
    subprocess.call() 执行指定的命令,返回命令执行状态,其功能类似于os.system(cmd)
    subprocess.Popen(args,)用来创建新的进程
    args参数:args参数。可以是一个字符串,可以是一个包含程序参数的列表。要执行的程序一般就 是这个列表的第一项,或者是字符串本身。
    communicate() #返回标准输出和标准出错 元组:(stdoutdata, stderrdata)

    11、str.splitlines([keepends])
    Python splitlines() 按照行(' ', ' ', ')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

    12、os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False。
    13、 import site
    site.addsitedir()
    将目录添加到sys.path并处理其.pth文件

    14、abspath = os.path.dirname(__file__) 得到当前文件的绝对路径__file__表示了当前文件的path

    15、os.chdir(path) 改变当前工作目录到指定的路径。

    16、python replace()方法:
    str.replace(old, new[, max]):把字符串中的旧字符串替换成新字符串,参数max表示替换不超过 max 次。

    17、split():通过指定分隔符对字符串进行切片,返回分割后的字符串列表

    18、python pandas模块

    19、urllib 模块:提供了一个从指定URL地址获取网页数据,然后对其进行分析处理,获取想要的数据

    20、str.join(sequence)
    python join()方法用于将序列中的元素以指定的字符连接生成一个新的字符串

    21、dict.setdefault(key, default=None)
    返回指定键的值 如果键不在字典中则添加键并将值设为默认值

    22、bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False

    23、re.sub()
    对于输入的一个字符串,利用正则表达式(的强大的字符串处理功能),去实现(相对复杂的)字符串替换处理,然后 返回被替换后的字符串

    24、pip卸载包:pip uninstall XXX

    25、sorted()对所有可迭代对象进行排序操作

    26、python -c command 指定要执行的命令
    python -c "import sys; print(sys.executable)" #/usr/bin/python 查看python的安装路径

    27、python 单元测试框架 ————unittest

    28、os.getpid() 获取进程id
    pid:操作系统中进程识别号

    29、import datetime
    datetime.datetime.now() 获取当前日期

    30、python web.py框架
    web.input() 获取url或是headler的参数 可以用于GET和POST请求包
    web.data() 获取实体正文,只能用于POST请求包
    两种方法返回值都是str类型

    31、python sys.argv[]用法
    sys.argv[]是一个从程序外部获取参数的桥梁,第一个元素[0]是程序本身,随后依次是外部给予的参数

    32、安装报错x86_64-linux-gnu-gcc
    解决办法:sudo apt-get install build-essential python-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev libkrb5-dev libmysqlclient-dev libpq-dev
    sudo apt-get upgrade
    安装python-ldap:apt-get install libsasl2-dev;pip3 install sasl;

    33、创建python虚拟环境:apt-get install python-virtualenv
    virtualenv venv 创建
    source venv/bin/activate or . venv/bin/activate 打开
    deactivate 关闭
    指定解释器创建虚拟环境virtualenv -p /usr/bin/python3.5 名称

    ******
    ******


    34、sys.path.append()和sys.path.insert() 加入临时搜索路径(import)
    sys.path.insert(0,‘/path’),添加的目录会优先于其他目录被import检查

    sys.path.append('..') 表示导入当前文件的上层目录到搜索路径中

    35、os.getcwd()用于获取当前工作目录

    36、os.path.join() 用于文件路径拼接 :
    1、从右边开始数,遇到第一个以”/”开头的参数,开始拼接,这个参数左边的全部丢弃;
    2、以上一种情况为先。在上一种情况确保情况下,若出现”./”开头的参数,会从”./”开头的参数左边相邻的一个参数开始拼接。

    37、super() 函数是用于调用父类(超类)的一个方法。

    38、如果你使用了非 ASCII 字符而且碰到了编码错误,记得在最顶端加一行 # -- coding: utf-8 --

    39、open()与with open() as的区别:用with语句,到达语句末尾时,会自动关闭文件,即使出现异常
    file = open("test.txt","r") with open("test.txt", "r") as file:
    for line in file.readlines(): for line in file.readlines():
    print line print line
    file.close()
    相当于:file = open("test.txt","r")
    try:
    for line in file.readlines():
    print line
    except:
    print "error"
    finally:
    file.close()

    40、product(list1,list2)依次取出list1中每1个元素,与list2中的每1个元素,组成元组(笛卡儿积),将所有元组组合成一个列表返回

    41、python cgitb模块 提供了一个特殊的异常管理器该模块激活后,如果发生了未捕获的异常,将会展示格式化的输出报告。该报告包括源代码每一层的回溯,以及当前执行程序的参数和局部变量 可以选择将这些信息存到一个文件里

    42、Terminal 打印有颜色的字体 magenta品红
    from blessings import Terminal
    term = Terminal()
    name = "lhs"
    print """==================================
    Running health check on: %s ...
    ==================================""" % (term.magenta(name))

    43、os.environ['USER']:当前使用用户
    os.environ.keys() 字段列表

    44、round() 方法返回浮点数x的四舍五入值。

    45、reverse() 函数用于反向列表中元素 remove()函数用于删除列表元素 list.insert(index, obj)将指定对象插入到列表的指定位置

    46、
    from datetime import date, datetime
    date.today() #2019-03-22
    datetime.today() #2019-03-22 10:28:17.673110

    47、filter(function, iterable)过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表(python3是迭代器对象)

    48、python setup.py 方式安装
    python setup.py build
    python setup.py install

    49、Linux python环境配置

    安装pip: sudo apt-get install python-pip
    安装环境依赖:sudo apt-get install build-essential python3-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev libkrb5-dev
    sudo apt-get upgrade

    升级setuptools:pip install --upgrade setuptools
    升级pip: python -m pip install --upgrade pip

    50、需求文件requirements.txt的创建及使用
    生成: pip freeze >requirements.txt
    使用:pip install -r requirements.txt

    51、查看python的默认编码:
    import sys
    reload(sys)
    print sys.getdefaultencoding()

    52、os.listdir():返回一个列表,其中包含有指定路径下的目录和文件的名称
    os.path.isdir()用于判断某一对象(需提供绝对路径)是否为目录
    os.path.isfile()用于判断某一对象(需提供绝对路径)是否为文件


    53、re 正则表达式
    re.match方法用于尝试从字符串的起始位置匹配一个正则表达式

    54、Ubuntu14.4安装python3.5
    sudo add-apt-repository ppa:fkrull/deadsnakes
    sudo apt-get update
    sudo apt-get install python3.5
    sudo apt-get install python3-pip
    sudo cp /usr/bin/python3 /usr/bin/python3_bak,先备份
    sudo rm /usr/bin/python3,删除
    sudo ln -s /usr/bin/python3.5 /usr/bin/python3,默认设置成python3.5

    55、忽略安装pip包:pip3 install docker-compose==1.10.0 --ignore-installed requests

    56、直接用unzip命令解压.egg python安装包文件

    57、访问 .py文件的网页的时候会出现 Exec format error的问题
    一般情况下是由于基于Unix(Linux,Mac OS)系统下的问题,办法如下
    1 .chmod +x filename  filename是要访问的文件名称,设置了以后文件具有可执行权限才能被web服务器访问
    2.在程序第一行加入:
      #! /usr/bin/env python  如果是python3运行的话把 python 换成 python3

    60、namedtuple:元组、可以看作字典,通过名字进行访问,其中值不能改变
    #####
    from collections import namedtuple
    Person = namedtuple('Person','name age')
    obj = Person('Tom',12)
    print(obj.name)
    print(obj.age)
    #####

    61、python之collections之counter
    Counter:计数器,用于追踪值出现的次数
    ######
    from collections import Counter
    obj = Counter("aaabbbccc")
    print(obj) #Counter({'a': 3, 'b': 3, 'c': 3})
    ######

    62、deque 双向队列
    ######
    import collections
    d = collections.deque()
    d.append(1)往右边添加一个元素
    d.appendleft(2)往左边添加一个元素
    ######

    63、selenium
    selenium 是一个 web 的自动化测试工具

    64、enumerate()
    函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据下标和数据
    seq = ['one', 'two', 'three']
    for i, element in enumerate(seq):
    print i, element

    0 one
    1 two
    2 three

    65、pickle.dumps


    66、urljoin


    67、pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 包名

    68、pm2设置开机启动程序
    sudo pm2 start xxxx // 启动服务
    sudo pm2 save // 保存服务
    sudo pm2 startup // 把已启动服务加到systemd中
    sudo systemctl reboot // 重启,发现之前的服务都已经启动
    sudo pm2 unstartup systemd // 删除自动启动服务

    pm2 logs id 查看日志
    pm2 show id 查看程序详细情况

    pm2 start app.js --name="api" 重命名












  • 相关阅读:
    JQ轮播
    JS中正则匹配的三个方法match exec test的用法
    JavaScript 表单验证
    JS 控制CSS样式表
    AJAX 的简单用法:
    shell之运用sed将其值存到变量
    shell之创建文件及内容
    修复vbox的共享文件夹的符号链接错误
    字符转码
    php魔术方法
  • 原文地址:https://www.cnblogs.com/lhsblog/p/12775876.html
Copyright © 2011-2022 走看看