• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python基础之内置模块详解
    POST TIME:2021-10-18 13:34

    一、os

    import os
     
    # 1. 获取当前脚本绝对路径
    """
    abs_path = os.path.abspath(__file__)
    print(abs_path)
    """
     
    # 2. 获取当前文件的上级目录
    """
    base_path = os.path.dirname( os.path.dirname(路径) )
    print(base_path)
    """
     
    # 3. 路径拼接
    """
    p1 = os.path.join(base_path, 'xx')
    print(p1)
    p2 = os.path.join(base_path, 'xx', 'oo', 'a1.png')
    print(p2)
    """
     
    # 4. 判断路径是否存在
    """
    exists = os.path.exists(p1)
    print(exists)
    """
     
    # 5. 创建文件夹
    """
    os.makedirs(路径)
    """
    """
    path = os.path.join(base_path, 'xx', 'oo', 'uuuu')
    if not os.path.exists(path):
        os.makedirs(path)
    """
     
    # 6. 是否是文件夹
    """
    file_path = os.path.join(base_path, 'xx', 'oo', 'uuuu.png')
    is_dir = os.path.isdir(file_path)
    print(is_dir) # False
    folder_path = os.path.join(base_path, 'xx', 'oo', 'uuuu')
    is_dir = os.path.isdir(folder_path)
    print(is_dir) # True
    """
     
    # 7. 删除文件或文件夹
    """
    os.remove("文件路径")
    """
    """
    path = os.path.join(base_path, 'xx')
    shutil.rmtree(path)
    """
    
    import os
     
    """
    data = os.listdir("/Users/hqss/PycharmProjects/luffyCourse/day14/commons")
    print(data)
    # ['convert.py', '__init__.py', 'page.py', '__pycache__', 'utils.py', 'tencent']
    """
     
    """
    要遍历一个文件夹下的所有文件,例如:遍历文件夹下的所有mp4文件
    """
     
    data = os.walk("/Users/hqss/Documents/视频教程/路飞Python/mp4")
    for path, folder_list, file_list in data:
        for file_name in file_list:
            file_abs_path = os.path.join(path, file_name)
            ext = file_abs_path.rsplit(".",1)[-1]
            if ext == "mp4":
                print(file_abs_path)
    

    二、shutil

    import shutil
     
    # 1. 删除文件夹
    """
    path = os.path.join(base_path, 'xx')
    shutil.rmtree(path)
    """
     
    # 2. 拷贝文件夹
    """
    shutil.copytree("/Users/hqss/Desktop/图/csdn/","/Users/hqss/PycharmProjects/CodeRepository/files")
    """
     
    # 3.拷贝文件
    """
    shutil.copy("/Users/hqss/Desktop/图/csdn/WX20201123-112406@2x.png","/Users/hqss/PycharmProjects/CodeRepository/")
    shutil.copy("/Users/hqss/Desktop/图/csdn/WX20201123-112406@2x.png","/Users/hqss/PycharmProjects/CodeRepository/x.png")
    """
     
    # 4.文件或文件夹重命名
    """
    shutil.move("/Users/hqss/PycharmProjects/CodeRepository/x.png","/Users/hqss/PycharmProjects/CodeRepository/xxxx.png")
    shutil.move("/Users/hqss/PycharmProjects/CodeRepository/files","/Users/hqss/PycharmProjects/CodeRepository/images")
    """
     
    # 5. 压缩文件
    """
    # base_name,压缩后的压缩包文件
    # format,压缩的格式,例如:"zip", "tar", "gztar", "bztar", or "xztar".
    # root_dir,要压缩的文件夹路径
    """
    # shutil.make_archive(base_name=r'datafile',format='zip',root_dir=r'files')
     
     
    # 6. 解压文件
    """
    # filename,要解压的压缩包文件
    # extract_dir,解压的路径
    # format,压缩文件格式
    """
    # shutil.unpack_archive(filename=r'datafile.zip', extract_dir=r'xxxxxx/xo', format='zip')
    

    三、sys

    import sys
     
    # 1. 获取解释器版本
    """
    print(sys.version)
    print(sys.version_info)
    print(sys.version_info.major, sys.version_info.minor, sys.version_info.micro)
    """
     
    # 2. 导入模块路径
    """
    print(sys.path)
    """
    
    import sys
     
    print(sys.argv)
     
     
    # [
    #       '/Users/hqss/PycharmProjects/luffyCourse/day14/2.接受执行脚本的参数.py'
    # ]
     
    # [
    #     "2.接受执行脚本的参数.py"
    # ]
     
    # ['2.接受执行脚本的参数.py', '127', '999', '666', 'wupeiqi']
     
    # 例如,请实现下载图片的一个工具。
     
    def download_image(url):
        print("下载图片", url)
     
     
    def run():
        # 接受用户传入的参数
        url_list = sys.argv[1:]
        for url in url_list:
            download_image(url)
     
     
    if __name__ == '__main__':
        run()
    

    四、random

    import random
     
    # 1. 获取范围内的随机整数
    v = random.randint(10, 20)
    print(v)
     
    # 2. 获取范围内的随机小数
    v = random.uniform(1, 10)
    print(v)
     
    # 3. 随机抽取一个元素
    v = random.choice([11, 22, 33, 44, 55])
    print(v)
     
    # 4. 随机抽取多个元素
    v = random.sample([11, 22, 33, 44, 55], 3)
    print(v)
     
    # 5. 打乱顺序
    data = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    random.shuffle(data)
    print(data)
    

    五、hashlib

    import hashlib
     
    hash_object = hashlib.md5()
    hash_object.update("武沛齐".encode('utf-8'))
    result = hash_object.hexdigest()
    print(result)
    import hashlib
     
    hash_object = hashlib.md5("iajfsdunjaksdjfasdfasdf".encode('utf-8'))
    hash_object.update("武沛齐".encode('utf-8'))
    result = hash_object.hexdigest()
    print(result)
    

    六、configparser

    详见地址,Python使用configparser读取ini配置文件,https://www.jb51.net/article/187233.htm

    七、xml

    详见地址,python自定义解析简单xml格式文件的方法,https://www.jb51.net/article/65886.htm

    八、json

    json模块,是python内部的一个模块,可以将python的数据格式 转换为json格式的数据,也可以将json格式的数据转换为python的数据格式。

    json格式,是一个数据格式(本质上就是个字符串,常用语网络数据传输)

    # Python中的数据类型的格式
    data = [
        {"id": 1, "name": "武沛齐", "age": 18},
        {"id": 2, "name": "alex", "age": 18},
        ('wupeiqi',123),
    ]
     
    # JSON格式
    value = '[{"id": 1, "name": "武沛齐", "age": 18}, {"id": 2, "name": "alex", "age": 18},["wupeiqi",123]]'
    

    核心功能

    json格式的作用

    跨语言数据传输,例如:
        A系统用Python开发,有列表类型和字典类型等。
        B系统用Java开发,有数组、map等的类型。

        语言不同,基础数据类型格式都不同。
        
        为了方便数据传输,大家约定一个格式:json格式,每种语言都是将自己数据类型转换为json格式,也可以将json格式的数据转换为自己的数据类型。

    Python数据类型与json格式的相互转换:

    import json
     
    data = [
        {"id": 1, "name": "华青水上", "age": 18},
        {"id": 2, "name": "alex", "age": 18},
    ]
     
    res = json.dumps(data)
    print(res) # '[{"id": 1, "name": "\u6b66\u6c9b\u9f50", "age": 18}, {"id": 2, "name": "alex", "age": 18}]'
     
    res = json.dumps(data, ensure_ascii=False)
    print(res) # '[{"id": 1, "name": "华青水上", "age": 18}, {"id": 2, "name": "alex", "age": 18}]'
    
    import json
     
    data_string = '[{"id": 1, "name": "华青水上", "age": 18}, {"id": 2, "name": "alex", "age": 18}]'
     
    data_list = json.loads(data_string)
     
    print(data_list)
    

    类型要求

    python的数据类型转换为 json 格式,对数据类型是有要求的,默认只支持:

     +-------------------+---------------+
        | Python            | JSON          |
        +===================+===============+
        | dict              | object        |
        +-------------------+---------------+
        | list, tuple       | array         |
        +-------------------+---------------+
        | str               | string        |
        +-------------------+---------------+
        | int, float        | number        |
        +-------------------+---------------+
        | True              | true          |
        +-------------------+---------------+
        | False             | false         |
        +-------------------+---------------+
        | None              | null          |
        +-------------------+---------------+
     
     
    data = [
        {"id": 1, "name": "武沛齐", "age": 18},
        {"id": 2, "name": "alex", "age": 18},
    ]
    

    其他类型如果想要支持,需要自定义JSONEncoder才能实现

    import json
    from decimal import Decimal
    from datetime import datetime
     
    data = [
        {"id": 1, "name": "武沛齐", "age": 18, 'size': Decimal("18.99"), 'ctime': datetime.now()},
        {"id": 2, "name": "alex", "age": 18, 'size': Decimal("9.99"), 'ctime': datetime.now()},
    ]
     
     
    class MyJSONEncoder(json.JSONEncoder):
        def default(self, o):
            if type(o) == Decimal:
                return str(o)
            elif type(o) == datetime:
                return o.strftime("%Y-%M-%d")
            return super().default(o)
     
     
    res = json.dumps(data, cls=MyJSONEncoder)
    print(res)
    

    其他功能

    json模块中常用的是:

    json.dumps,序列化生成一个字符串。

    json.loads,发序列化生成python数据类型。

    json.dump,将数据序列化并写入文件(不常用)

    import json
     
    data = [
        {"id": 1, "name": "武沛齐", "age": 18},
        {"id": 2, "name": "alex", "age": 18},
    ]
     
    file_object = open('xxx.json', mode='w', encoding='utf-8')
     
    json.dump(data, file_object)
     
    file_object.close()
    
    import json
     
    file_object = open('xxx.json', mode='r', encoding='utf-8')
     
    data = json.load(file_object)
    print(data)
     
    file_object.close()

    九、time

    import time
     
    # 获取当前时间戳(自1970-1-1 00:00)
    v1 = time.time()
    print(v1)
     
    # 时区
    v2 = time.timezone
     
    # 停止n秒,再执行后续的代码。
    time.sleep(5)

    十、datetime

    在平时开发过程中的时间一般是以为如下三种格式存在:

    from datetime import datetime, timezone, timedelta
     
    v1 = datetime.now()  # 当前本地时间
    print(v1)
     
    tz = timezone(timedelta(hours=7))  # 当前东7区时间
    v2 = datetime.now(tz)
    print(v2)
     
    v3 = datetime.utcnow()  # 当前UTC时间
    print(v3)
    
    from datetime import datetime, timedelta
     
    v1 = datetime.now()
    print(v1)
     
    # 时间的加减
    v2 = v1 + timedelta(days=140, minutes=5)
    print(v2)
     
    # datetime类型 + timedelta类型
    
    from datetime import datetime, timezone, timedelta
     
    v1 = datetime.now()
    print(v1)
     
    v2 = datetime.utcnow()  # 当前UTC时间
    print(v2)
     
    # datetime之间相减,计算间隔时间(不能相加)
    data = v1 - v2
    print(data.days, data.seconds / 60 / 60, data.microseconds)
     
    # datetime类型 - datetime类型
    # datetime类型 比较 datetime类型
    
    # 字符串格式的时间  ---> 转换为datetime格式时间
    text = "2021-11-11"
    v1 = datetime.strptime(text,'%Y-%m-%d') # %Y 年,%m,月份,%d,天。
    print(v1)
    # datetime格式 ----> 转换为字符串格式
    v1 = datetime.now()
    val = v1.strftime("%Y-%m-%d %H:%M:%S")
    print(val)
    # 时间戳格式 --> 转换为datetime格式
    ctime = time.time() # 11213245345.123
    v1 = datetime.fromtimestamp(ctime)
    print(v1)
    # datetime格式 ---> 转换为时间戳格式
    v1 = datetime.now()
    val = v1.timestamp()
    print(val)

    补充:

    Python中关于时间处理的模块有两个,分别是time和datetime。

    至此,Python常用的10个内置模块总结到此结束,欢迎大家 批评指正!

    到此这篇关于Python基础之内置模块详解的文章就介绍到这了,更多相关Python内置模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • python内置模块collections知识点总结
    • Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
    • Python3.5内置模块之random模块用法实例分析
    • python 内置模块详解
    • Python内置模块ConfigParser实现配置读写功能的方法
    • Python内置模块hashlib、hmac与uuid用法分析
    • Python内置模块logging用法实例分析
    • Python内置模块turtle绘图详解
    • Python常用内置模块之xml模块(详解)
    上一篇:Python新手入门之解释器的安装
    下一篇:关于Matplotlib绘制动态实时曲线的方法改进指南
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信