zoukankan      html  css  js  c++  java
  • python16_day06【类、RE模块、subprocess模块、xml模块、shelve模块】

    一、shelve模块

      

     1 import shelve
     2 
     3 # 基于pickle模块,
     4 
     5 d = shelve.open('shelve_test')
     6 
     7 
     8 class Test(object):
     9     def __init__(self, n):
    10         self.n = n
    11 
    12 t1 = Test(123)
    13 t2 = Test(456)
    14 name = ['alex', 'rain', 'test']
    15 d['test'] = name
    16 d['t1'] = t1
    17 d['t2'] = t2
    18 
    19 d.close()

    二、XML模块

      1.增、删、改、查

    import xml.etree.ElementTree as ET
    
    tree = ET.parse("list.xml")
    root = tree.getroot()
    print(root.tag)
    
    
    # 查询
    # # 遍历xml文档
    # for child in root:
    #     print(child.tag, child.attrib)
    #     for i in child:
    #         print(i.tag, i.text)
    
    # 只遍历year 节点
    # for node in root.iter('year'):
    #     print(node.tag, node.text)
    
    # 修改
    # for node in root.iter('year'):
    #     new_year = int(node.text) + 1
    #     node.text = str(new_year)
    #     node.set("updated", "yes")
    #
    # tree.write("xmltest.xml")
    
    # 删除node
    # for country in root.findall('country'):
    #    rank = int(country.find('rank').text)
    #    if rank > 50:
    #      root.remove(country)
    #
    # tree.write('output.xml')
    View Code

      2.创建

     1 import xml.etree.ElementTree as ET
     2 
     3 # root
     4 new_xml = ET.Element("namelist")
     5 
     6 
     7 name = ET.SubElement(new_xml, "name", attrib={"enrolled": "yes"})
     8 age = ET.SubElement(name, "age", attrib={"checked": "no"})
     9 sex = ET.SubElement(name, "sex")
    10 sex.text = '33'
    11 name2 = ET.SubElement(new_xml, "name", attrib={"enrolled": "no"})
    12 age = ET.SubElement(name2, "age")
    13 age.text = '19'
    14 
    15 # 生成文档对象
    16 et = ET.ElementTree(new_xml)
    17 et.write("test.xml", encoding="utf-8", xml_declaration=True)
    View Code

    三、shutil模块

     1 import shutil
     2 # http://www.cnblogs.com/wupeiqi/articles/4963027.html
     3 
     4 # copy fileobj
     5 # f1 = open('access.log')
     6 # f2 = open("access1.log", 'w')
     7 # shutil.copyfileobj(f1, f2, length=1024)
     8 
     9 # copy file
    10 # shutil.copyfile('access.log', 'access2.log')
    11 
    12 # 仅拷贝权限。内容、组、用户均不变
    13 # shutil.copymode()
    14 
    15 # 拷贝状态的信息,包括:mode bits, atime, mtime, flags. 内容不变
    16 # shutil.copystat()
    17 
    18 # copy 目录
    View Code

    四、subprocess模块

     1 import subprocess
     2 
     3 res = subprocess.Popen("pwd", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd="/")
     4 print(res.stdout.read())
     5 
     6 # res.poll()
     7 # res.terminate()
     8 # res.wait()
     9 
    10 subprocess.getstatusoutput("ls")
    View Code

    五、RE模块

    import re
    
    
    # 从头匹配,很少使用
    re.match("d+", "341221")
    # 匹配一次
    re.search("d+", "341221")
    # 匹配多次
    re.findall("d+", "341221")
    # 以逗号分割
    re.split(",", "341,221")
    # 匹配到进行替换,默认是替代所有,count指定次数.
    re.sub("d{4}", "1995", "1399,2017", count=1)
    
    # re.I  (忽略大小写)
    # print(re.search("[a-z]", "Alex", flags=re.I))
    # re.M  (匹配多行)
    # print(re.search("^is", "my name
    is alex", flags=re.M))
    # re.S  (多行匹配在一起)
    # print(re.search(".+", "my 
    name", flags=re.S))
    View Code

    六、configparser模块

     1 mport configparser
     2  
     3 config = configparser.ConfigParser()
     4 config["DEFAULT"] = {'ServerAliveInterval': '45',
     5                       'Compression': 'yes',
     6                      'CompressionLevel': '9'}
     7  
     8 config['bitbucket.org'] = {}
     9 config['bitbucket.org']['User'] = 'hg'
    10 config['topsecret.server.com'] = {}
    11 topsecret = config['topsecret.server.com']
    12 topsecret['Host Port'] = '50022'     # mutates the parser
    13 topsecret['ForwardX11'] = 'no'  # same here
    14 config['DEFAULT']['ForwardX11'] = 'yes'
    15 with open('example.ini', 'w') as configfile:
    16    config.write(configfile)

    七、类

    http://www.cnblogs.com/wupeiqi/p/4493506.html

    http://www.cnblogs.com/wupeiqi/p/4766801.html

  • 相关阅读:
    数据存储之使用MongoDB数据库存储数据
    数据存储之使用mysql数据库存储数据
    数据存储之json文件处理和csv文件处理
    python使用PyQt5,及QtCreator,qt-unified界面设计以及逻辑实现
    Tesseract-ocr视觉学习-验证码识别及python import pytesseract使用
    ubuntu crontab设置定时任务
    nginx+django线上部署
    PHP网站从Apache转移到Nginx后产生404错误的原因和解决办法
    收集的免费API接口
    C#中字符数组,字节数组和string之间的转化
  • 原文地址:https://www.cnblogs.com/weibiao/p/6491950.html
Copyright © 2011-2022 走看看