zoukankan      html  css  js  c++  java
  • 内置模块

    TIME和DATETIME模块

    表示时间的方式分为:          

    1时间戳(timestamp)

    2格式化化的时间字符串(format string)

    3结构化时间(struct_time)

    实例:

    import datetime
    import time
    
    print(datetime.datetime.now())
    #2018-06-05 19:01:06.993322
    
    print(datetime.date.fromtimestamp(time.time()))
    #2018-06-05
    
    print(datetime.datetime.now()+datetime.timedelta(3))
    #2018-06-08 19:03:53.716729
    
    print(datetime.datetime.now()+datetime.timedelta(-3))
    #2018-06-02 19:04:49.441533
    
    print(datetime.datetime.now()+datetime.timedelta(hours=3))
    #2018-06-05 22:05:59.804380
    
    print(datetime.datetime.now()+datetime.timedelta(hours=-3))
    #2018-06-05 16:07:10.981068
    
    time=datetime.datetime.now()
    print(time.replace(day=7,hour=22))
    #2018-06-07 22:32:30.268675

    Random模块

    import random
    
    print(random.random())
    #0.7440638054751231
    
    print(random.randint(1,3))#闭区间,必须传入两个参数
    #2
    
    print(random.randrange(5))#前闭后开区间,至少传一个整数
    #1
    
    print(random.choice(['a','b',1,2,3]))#必须传一个数组,将在数组里任意取一个值
    print(random.sample([1,2,3],2))#必须传两个参数一个是供选择的数组。一个是整数,代表取几个数
    #['b']
    
    print(random.uniform(3,5))#必须传两个数,结果是开区间的一个小数
    
    print(random.shuffle([1,2,2,3,4]))#必须传入一个参数,而且必须是一个可以计算长度,可以取索引的参数

    Hashlib和Md5模块

    用途:产生消息摘要,用于判断文件是否相同

    用法:

    。md5.new([arg])//返回一个md5对象,如果有参数则相当于调用了update(arg)
    
    。md5.md5(s)//返回字符串s的md5
    
    。md5.update(arg)//用string参数更新md5对象。
    
    。md5.digiest()返回16字节的摘要,由传给update的string生成,摘要没有ascii码字符。
    
    。hexdigest()//返回16字节的摘要,由传给update的string生成,摘要进制的形式返回摘要,32位。

    实例:

    import hashlib
    
    m = hashlib.md5()
    m.update("Nobody inspects".encode('utf-8'))
    m.update(" the spammish repetition xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx".encode('utf-8'))
    print(m.digest())
    print(m.hexdigest())

    返回结果:

    二进制结果:b" x90j>Nx82'xd1xb2mx8dxa0<&xd06"

    十六进制结果:20906a3e4e8227d1b26d8da03c26d036

    sys模块

    sys模块是可供访问的解释器使用或维护的变量和与解释器进行交互的函数。负责程序与解释器的交互,提供了一系列的函数和变量,用于操控python运行时的环境。

    import sys
    
    print(sys.argv)#命令行参数list形式返回,第一个云素是程序本身
    
    print(sys.path)#返回模块的搜索路径,初始化时使用python环境变量的值
    
    print(sys.platform)#返回系统平台名称
    
    print(sys.version)#获取解释程序的版本信息
    
    print(sys.exit(0))#退出程序,正常时退出exit(0)

    Shutil模块

    高级的文件、文件夹、压缩包处理模块

    import shutil
    
    #拷贝文件
    shutil.copyfileobj(open(r'02.批量操作','rb'),open('new.html','wb'))
    
    #目标文件无需存在
    shutil.copyfile(r'01.监听input输入','f2.html')
    
    #仅仅拷贝文件权限,其他均不变。目标文件必须在
    shutil.copymode(r'02.批量操作','f1.html')
    
    #仅仅拷贝文件状态。文件必须在
    shutil.copystat(r'02.批量操作','f1.html')
    
    #仅仅拷贝文件和权限
    shutil.copy(r'02.批量操作','f1.html')
    
    #拷贝文件和状态信息
    shutil.copy2(r'02.批量操作','f1.html')
    
    #递归拷贝文件夹。目标目录不能存在,注意必须对目标目录的父级目录有可写权限
    shutil.copytree(r'D:pycharmpre_farmer
    unoob',r'D:pycharmpre_farmera',ignore=shutil.ignore_patterns('*.py','practice*'))
    
    #创建压缩包并返回文件路径
    shutil.make_archive('02','gztar',root_dir=r'D:pycharmpre_farmer
    unoob')
    
    #递归地移动文件,类似mv命令
    shutil.move(r'D:pycharmpre_farmer今日作业.html',r'D:pycharmpre_farmer
    unooba.html')
    
    #递归地删除文件夹下的文件
    shutil.rmtree(r'./a')
    
    #创建压缩包并返回文件路径
     shutil.make_archive('02','gztar',root_dir=r'D:pycharmpre_farmer
    unoob')

    创建压缩包并返回文件路径,例如:zip、tar

    创建压缩包并返回文件路径,例如:zip、tar

    base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,

    如 data_bak                       =>保存至当前路径

    如:/tmp/data_bak =>保存至/tmp/

    format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”

    root_dir:      要压缩的文件夹路径(默认当前目录)

    owner: 用户,默认当前用户

    group: 组,默认当前组

    logger: 用于记录日志,通常是logging.Logger对象

    tar压缩格式

    import tarfile
    
    #压缩
    t=tarfile.open('今日作业.tar','w')
    t.add('../今日作业.html',arcname='a.bak')
    t.close()
    
    #解压缩
    t=tarfile.open('今日作业.tar','r')
    t.extractall('./')#解压缩到当前目录
    t.close()

    zip压缩格式

    import zipfile
    
    # 压缩
    z = zipfile.ZipFile('laxi.zip', 'w')
    z.write('a.log')
    z.write('data.data')
    z.close()
    
    # 解压
    z = zipfile.ZipFile('laxi.zip', 'r')
    z.extractall(path='.')
    z.close()
    #解压文件为中文的文件名乱码问题,参考:https://blog.csdn.net/tian544556/article/details/78635840

    XML模块

     1 import xml.etree.ElementTree as ET
     2 
     3  
     4 
     5 tree=ET.parse('a.xml')#解析文件
     6 
     7 root=tree.getroot()#查树根
     8 
     9  
    10 
    11 print(root.tag)#获取根节点
    12 
    13 #遍历xml文档
    14 
    15 for child in root:
    16 
    17     print('==>',child.tag,child.attrib,child.attrib['name'])
    18 
    19     for i in child:
    20 
    21         print(i.tag,i.attrib,i.text)
    22 
    23 #遍历gdppc节点
    24 
    25 for node in root.iter('gdppc'):#迭代查找:会在整个树中查找,并且是查找所有匹配的
    26 
    27     print(node.tag,node.text)
    28 
    29  
    30 
    31 #修改节点
    32 
    33 for node in root.iter('year'):
    34 
    35     new_year=int(node.text)+3
    36 
    37     node.set('updated','yes')
    38 
    39     node.set('version','1.0')
    40 
    41 tree.write('a.xml')
    42 
    43  
    44 
    45 #删除节点
    46 
    47 for country in root.findall('country'):
    48 
    49     rank=int(country.find('rank').text)
    50 
    51     if rank>50:
    52 
    53         root.remove(country)
    54 
    55 tree.write('a.xml')
    56 
    57  
    58 
    59 #创建xml文档
    60 
    61 new_xml=ET.Element('namelist')
    62 
    63 name=ET.SubElement(new_xml,'name',attrib={'enrolled':'yes'})
    64 
    65 age=ET.SubElement(name,'age',attrib={'checked':'no'})
    66 
    67 gender=ET.SubElement(name,'gender')
    68 
    69 gender.text='33'
    70 
    71 name2=ET.SubElement(new_xml,'name',attrib={'enrolled':'no'})
    72 
    73 age=ET.SubElement(name2,'age')
    74 
    75 age.text='19'
    76 
    77 et=ET.ElementTree(new_xml)
    78 
    79 et.write('a.xml',encoding='utf-8',xml_declaration=True)
    80 
    81 ET.dump(new_xml)
    View Code
  • 相关阅读:
    Android Studio 单刷《第一行代码》系列 05 —— Fragment 基础
    Android Studio 单刷《第一行代码》系列 04 —— Activity 相关
    Android Studio 单刷《第一行代码》系列 03 —— Activity 基础
    Android Studio 单刷《第一行代码》系列 02 —— 日志工具 LogCat
    Android Studio 单刷《第一行代码》系列 01 —— 第一战 HelloWorld
    IDEA 内网手动添加oracle,mysql等数据源,以及server returns invalid timezone错误配置
    eclipse maven设置
    IntelliJ IDE 常用配置
    eclipse maven 常见问题解决方案
    Maven 安装和配置
  • 原文地址:https://www.cnblogs.com/qiaoqianshitou/p/9141619.html
Copyright © 2011-2022 走看看