• python3学习笔记一


    install 安装软件包
    download 下载安装包
    uninstall 卸载安装包
    freeze 按照req uirements 格式输出安装包,可以到其他服务器上执行pip install -r requirements.txt 直接安装软件
    list 列出当前系统中的安装包
    show 查看安装包的信息,包括版本、依赖、许可证、作者、主页等信息
    check pip 9.0.1提供的最新子命令,检查安装包的依赖是否完整
    search 查找安装包
    wheel 打包软件到w h e ll 格式
    hash 计算安装包的hash 值
    completion 生成命令补全配置
    help 获取pi p 和子命令的帮助信息


    表4-2 正则表达式的基本语法
    正则表达式 描述 示例
    ^ 行起始标记 ^imp匹配以imp起始的行
    $ 行尾标记 import$匹配以import结尾的行
    . 匹配任意一个字符 它只能匹配单个字符,但是可以匹配任意字符,如linu.可以匹配linux与linus
    [] 匹配包含在[字符]之中的任意字符 coo[kl]能够匹配cook或cool
    [^] 匹配包含在[〈字符] 之外的任意字符 9[^01]可以匹配92、93,但是不匹配91或90
    [-] 匹配[]中指定范围内的任意一个字符 [1-5]匹配l~5的任意一个数字,[a-z]匹配任意一个小写字母
    ? 匹配之前项的l 次或0 次 hel?o 匹配hello或helo,但是不能匹配helllo
    + 匹配之前项的l 次或多次 hel+匹配hel和hell,但是不能匹配he.
    * 匹配之前项的0 次或多次 hel*匹配he、hel、hell
    {n} 匹配之前的项n 次 [0-9]{3}匹配任意一个三位数
    {n, } 之前的项至少需要匹配n 次 [0-9]{3,}匹配任意一个三位数或更多的数字
    {n , m } 指定之前的项所必须匹配的最小次数和最大次数 [0-9]{2,5}匹配从两位数到五位数之间的任意一个数字

    使用fileinput ,可以依次读取命令行参数中给出的多个文件。也就是说, fileinput 会遍历sys.argv[l :]列表,并按行依次读取列表中的文件。如果该列表为空, 则fileinput 默认读取标准输入中的内容。
    filename : 当前正在读取的文件名;
    fileno :文件的描述符;
    filelineno :正在读取的行是当前文件的第几行;
    isfirstline : 正在读取的行是否当前文件的第一行;
    isstdin fileinput :正在读取文件还是直接从标准输入读取内容。

    import fileinput
    for 1 l口e in fileinput . 工nput( ):
    print (1 ine , end= ”” )

    sys .stdout 与sys.stderr 向标准输出和错误输出中输出内容

    使用getpass 库读取密码
    使用ConfigParse 解析配置文件
    argparse 模块
    logging 模块提供了日志相关的功能
    使用click 解析命令行参数
    字符串函数
    查找类函数
    format 函数
    re 模块
    filecmp 模块最简单的函数是cmp 函数,该函数用来比较两个文件是否相同
    filecmp 目录下还有一个名为cmpfiles 的函数,该函数用来同时比较两个不同目录下的多个文件,并且返回一个三元组,分别包含相同的文件、不同的文件和无法比较的文件
    hashlib 模块 MD5 校验和比较
    tarfile 库读取与创建tar 包
    zipfile 库创建和读取zip 压缩包
    shutil 创建压缩包
    subprocess 模块的便利函数
    subprocess 模块的Po pen 类
    交E式监控工具glances
    pyinotify 监控文件系统变化
    openpyxl 是一个读写Exc e l 2010 ( xlsx/xlsm )文档的Python 库,如果要处理更早格式的Excel 文档,需要用到另外的库
    使用PdfFileWriter 创建PDF 文件
    yagmail 发送邮件
    Fabric 使用入门
    ansible使用

    表3-1 logging 模块中日志级别及其含义
    日志级别 权重 含义
    CRITICAL 50 严重错误,表明软件已不能继续运行了
    ERROR 40 发生了严重的错误,必须马上处理
    WARNING 30 应用程序可以容忍这些信息,软件还是在正常工作,不过它们应该被检查及修复,否则将在不久的将来发生问题
    INFO 20 证明事情按预期工作, 突出强调应用程序的运行过程
    DEBUG 10 详细信息,只有开发人员调试程序时才需要关注的事情

    Logger : 日志记录器,是应用程序中能直接使用的接口;
    Handler : 日志处理器,用以表明将日志保存到什么地方以及保存多久;
    Formatter : 格式化,用以配置日志的输出格式。

    字符串函数
    2. 与大小写相关的方法
    以下几个函数是与字符大小写相关的字符串处理函数:
    upper :将字符串转换为大写;
    lower :将字符串转换为小写;
    isupper :判断字符串是否都为大写;
    islower :判断字符串是否都为小写;
    swap case :将字符串中的大写转换为小写、小写转换为大写;
    capitalize :将首字母转换为大写;
    istitle :判断字符串是不是一个标题;

    查找类函数
    find :查找子串出现在字符串中的位置,如果查找失败,返回- 1 j
    index : 与find 函数类似,如果查找失败,抛出ValueError 异常;
    rfind : 与find 函数类似,区别在于rfind 是从后向前查找;
    rindex :与index 函数类似,区别在于rindex 是从后向前查找。

    format 函数
    fill :表示显示时需要填充的字符,默认以空格填充;
    align :表示输出结果的对齐方式,“〈”表示左对齐,“>”表示右对齐,“〈”表示居中;
    sign :仅仅对数字起作用,表示在显示数字时, 是否需要显示“+”和“-”号,默认取值是“-”,表示在显示正数时,不会显示“+”号,在显示负数时,显示“一号,当sign 为一个空格时(“勺,表示“ -”和数字之间需要保留一个空格;
    width :表示显示的宽度;
    precision : 表示显示的精度;
    type : 表示显示的类型。

    re 模块
    re.findall 该函数在字符串中查找模式匹配
    match match 函数用以匹配字符串的开始部分,如果模式匹配成功, 返回一个SRE Match 类型的对象,如果模式匹配失败,返回一个None
    re.sub
    re.split re 模块的split 函数与Python 字符串的split 函数功能一样,都是将一个字符串拆分成子串的列表。

    zipfile 库创建和读取zip 压缩包
    ZipFile 的常用方法如下:
    namelist : 返回zip 文件中包含的所有文件和文件夹的字符串列表;
    extract : 从zip 文件中提取单个文件;
    extractall :从zip 文件中提取所有文件。

    SSHClient 类常用的几个方法:
    1 ) connect : connect 方法实现远程服务器连接与认证,对于该方法, 只有hostname 是必传参数。
    2 ) set_ missing_ host_ key _policy : 设置远程服务器没有在know_hosts 文件中记录时的应对策略。目前支持三种策略,分别是AutoAddPolicy 、RejectPolicy ( 默认策略)与WarningPolicy ,分别表示自动添加服务器到know_hosts 文件、拒绝本次连接、警告并将服务器添加到know hosts 文件中。
    3 ) exec command :在远程服务器执行Linux 命令的方法。
    4 ) open_s句:在当前ssh 会话的基础上创建一个sftp 会话

    SFTPClient 类常用的几个方法:
    put :上传本地文件到远程服务器;
    get :从远程服务器下载文件到本地;
    mkdir :在远程服务器上创建目录;
    remove :删除远程服务器中的文件;
    rmdir :删除远程服务器中的目录;
    rename :重命名远程服务器中的文件或目录;
    stat : 获取远程服务器中文件的详细信息;
    listdir :列出远程服务器中指定目录下的内容。

    fabfile之常用参数
    fabfile.py文件
    -l #显示定义好的任务函数名
    -f #指定fab入口文件,默认入口文件名为fabfile.py
    -f #指定网关(中转)设备,比如堡垒机环境,填写堡垒机IP即可
    -H #指定目标主机,多台主机用‘,’号分隔
    -p #远程账号的密码,fab执行时默认使用root账户
    -P #以异步并行方式运行多主机任务,默认为串行运行
    -R #指定role(角色),以角色名区分不同业务组设备
    -t #设置设备连接超时时间(秒)
    -T #设置远程主机命令执行超时时间(秒)
    -w #当命令执行失败,发出警告,而非默认中止任务。

    fabfile之env对象
    env.hosts #定义目标主机,可以用IP或主机名表示,以python的列表形式定义。如env.hosts=['192.168.1.21','192.168.1.22']
    env.exclude_hosts #排除指定主机,如env.exclude_hosts=['192.168.1.21']
    env.user #定义用户名,如env.user='root'
    env.port #定义端口,默认为22,如env.port='22'
    env.password #定义密码,如env.password='123456'
    env.passwords #定义多个密码,不同主机对应不同密码,如:env.passwords = {'root@192.168.1.21:22':'123456','root@192.168.1.22:22':'654321'}
    env.gateway #定义网关(中转、堡垒机)IP,如env.gateway='192.168.1.23
    env.roledefs #定义角色分组,比如web组合db组主机区分开来:env.roledefs = {'webserver':['192.168.1.21','192.168.1.22'],'dbserver':['192.168.1.25','192.168.1.26']}

    env.deploy_release_dir #自定义全局变量,格式:env. + '变量名称',如env.age,env.sex等

    Fabric常用API
    local #执行本地命令,如local('uname -s')
    lcd #切换本地目录,如lcd('/home')
    cd #切换远程目录
    run #执行远程命令
    sudo #sudo方式执行远程命令,如sudo('/etc/init.d/httpd start')
    put #上次本地文件导远程主机,如put('/home/user.info','/data/user.info')
    get #从远程主机下载文件到本地,如:get('/data/user.info','/home/user.info')
    prompt #获得用户输入信息,如:prompt('please input user password:')
    confirm #获得提示信息确认,如:confirm('Test failed,Continue[Y/N]?')
    reboot #重启远程主机,如:reboot()

    @task #函数修饰符,标识的函数为fab可调用的,非标记对fab不可见,纯业务逻辑
    @runs_once #函数修饰符,标识的函数只会执行一次,不受多台主机影响


    from __future__ import print __function__


    ansible
    /etc/ansible/hosts #ip默认配置文件
    [webservers ]
    web [1: 3].example.com #添加3台web服务器
    cat /etc/ansible/ansible .cfg #服务器集合管理配置文件
    [defaults]
    remote__port= 2092
    remote user= lmx
    inventory = /home/lmx/hosts #指定hosts文件路径

    表10-1 远程服务器匹配规则
    规则 含义
    192. 168.0.1 或web.example. com 匹配目标E 地址或服务器名,如果有多个IP 或服务器,使用‘:分隔
    webservers 匹配目标组为webservers ,多个组使用“·”分隔
    all 或'*' 如匹配所有服务器
    webservers: !dbservers 匹配在webservers 中,不在dbservers 组中的服务器
    webservers:&dbservers 匹配同时在web servers 组以及dbservers 组中的服务器
    ?.example.com 或192.168.* 使用通配符进行匹配
    webservers [町, webservers[ l :], webservers[-1] 使用索引或切片操作的方式匹配组中的服务器
    ~(webldb ). *.example.com 以~开头的匹配,表示使用正则表达式匹配

    fil e 模块中的重要选项:
    path :指定文件/目录的路径;
    recurse : 递归设置文件属性,只对目录有效;
    group : 定义文件/ 目录的组;
    mode : 定义文件/ 目录的权限;
    owner : 定义文件/目录的所有者;
    src :要被链接的源文件路径, 只应用于state 为link 的情况;
    de s t : 被链接到的路径,只应用于state 为link 的情况;
    force : 在两种情况下会强制创建软链接, 一种是源文件不存在但之后会建立的情况;
    另一种是目标软链接已存在, 需要先取消之前的软链接,然后创建新的软链接, 默
    认取值为no;
    state : 该选项有多个取值,包括directory 、file 、link 、hard 、touch 、absent 。各个
    取值的含义如下:取值为directory 时,如果目录不存在,创建目录;取值为file 时,
    即使文件不存在也不会被创建;取值为link 时,创建软链接;取值为hard 时,创建
    硬链接; 取值为touch 时, 如果文件不存在,创建一个新的文件,如果文件或目录已
    存在,更新其最后访问时间和修改时间;取值为absent 时,删除目录、文件或链接。

    ansib le-playbook 命令与ansib le 命令相同的命令行选项:
    -T --timeout : 建立SSH 连接的超时时间;
    --key-file --private-key : 建立SSH 连接的私钥文件;
    -i --inventory-file :指定Inventory 文件,默认是/etc/ansible/ hosts;
    -f --forks :并发执行的进程数,默认为5;
    --list-hosts playbooks :匹配到服务器列表。

    ansible-playbook 命令特有的一些选项:
    --list-tasks : 列出任务列表;
    --step : 每执行一个任务后停止,等待用户确认;
    --syntax-check : 检查Playbook 的语法;
    -C --check : 检查当前这个Playbook 是否会修改远程服务器,相当于预测Playbook

  • 相关阅读:
    复利计算(1)
    对IT行业的一些思考
    递归下降语义分析
    1118 实验三 有限自动机的构造与识别
    冒泡排序文法评论
    实验0:了解和熟悉操作系统
    0302思考IT行业的感想
    递归下降语义分析
    对文法解释和语法树的评论
    语言文法
  • 原文地址:https://www.cnblogs.com/zhaop8078/p/11285656.html
Copyright © 2020-2023  润新知