• python 06篇 常用模块


    一、模块

    什么是模块?

    模块实质上就是一个python文件,它是用来组织代码的,意思就是说把python代码写到里面,文件名就是模块的名称,test.py test就是模块名称。

    1.1 导入模块

    import module #导入模块
    from module import *  #导入该模块中的所有方法,慎用
    from module import fun as xx_fun #导入指定的方法,然后起别名
    from module import fun1,fun2,fun3 #导入模块下的多个方法
    import module,实际上就是把该模块的代码赋值给模块名,也就是module.py里面所有的代码,赋值给了module这个变量,如果是from module import fun,就是把module打开,把module里面的fun方法拿过来使用

    导入模块的本质,就是把python文件拿过来执行一次。

    1.2 模块分类

    标准库:python内置的
    开源模块:第三方
    自定义模块:自己写的

    if __name__ == '__main__':
    这个模块被导入时,这里的代码不会被执行

    1.3 第三方模块安装

        1、pip install xxx
    2、whl,首先要下载whl文件
    pip install xxx.whl
    3、.tar.gz 压缩包,下载.tar.gz压缩包
    1、解压
    2、进入目录
    3、执行python setup.py install

    1.4 卸载和升级

    pip uninstall xxx
    pip install -U xxx # 升级到最新
    pip install --upgrade xxx

    1.5 换电脑后怎么批量安装之前安装过的第三方模块

    导出已经安装过的依赖
    pip freeze > xxx.txt
    安装指定文件里面的模块
    pip install -r xxx.txt

    二、os模块

    2.1 os模块常用方法

    import os
    
    print(os.listdir('..lhylhy_homework'))  # 获取某个目录下的内容
    os.mkdir()  # 创建文件夹,如果文件夹已存在,会报错
    os.makedirs('..javaday1')  # 递归创建文件夹,父目录不存在的时候,会创建父目录
    
    os.remove('file_name')  # 删除文件,不能删除文件夹
    os.rmdir('wenjianjia_name')  # 删除空文件夹
    os.rename('file_name', 'new_file_name')  # 重命名,文件和文件夹都可以
    print(os.getcwd())  # 获取当前所在的目录
    os.chdir('..lhy_homework') # 进入到某个目录里面
    print(os.environ)  # 获取系统环境变量里面配置的内容
    
    print(os.system('ipconfig'))  # 执行操作系统命令,它只能帮你执行,不能拿到命令的结果
    # 它返回的是命令执行是否成功,如果返回的是0,代表执行成功
    print(os.popen('ipconfig').read())  # 执行操作系统命令,可以拿到命令的结果
    
    
    
    print(os.path.split('..a.py'))  # 分隔路径和文件名的
    print(os.path.join('e:', 'movies', 'dapian'))  # 拼接路径  会自动根据系统选择系统分隔符
    # 绝对路径。例如:E:pyWorkSpacelhylhy_homeworkday05ketanglianxi_05a.py
    os.path.abspath('lujing_name')  # 把相对路径转为绝对路径
    os.path.dirname()  # 取当前文件的父目录
    
    print(os.path.isfile('file_name'))  # 是否为文件
    os.path.isdir('file_name')  # 是否为文件夹
    os.path.exists('file_name')  # 文件是否存在
    os.path.getsize('file_name')  # 获取大小
    os.path.getctime('file_name')  # 创建时间
    os.path.getmtime('file_name')  # 修改时间
    os.path.getatime('file_name')  # 最后访问时间
    
    print(os.path.sep)   # 当前系统的路径分隔符

    2.2 os模块常用方法小练习

    import os
    # __file__代表当前文件
    
    #E:pyWorkSpacelhylhy_homeworkday05ketanglianxi_05pythonlibop_sql.py
    base_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  # 一层层获取父级目录
    sql_file = os.path.join(base_path, 'sqls', 'create.sql')
    print(os.path.abspath(__file__))
    print(os.path.dirname(os.path.abspath(__file__)))
    print(sql_file)
    
    #os.walk  递归遍历文件夹
    for cur_path, dirs, files in os.walk(r'E:pyWorkSpacelhylhy_homework'):  # cur_path:当前访问的目录,dirs :当前目录下的所有文件夹,files:当前文件夹中的所有文件
        print('在当前%s目录下查找:'% cur_path)
        for file in files:
            if file.endswith('.mp4'):
                print('在s%发现视频文件'% cur_path)
                break

    三、time模块

    import time
    # 时间戳  一串数字 从unix元年开始 过1秒 就+1
    
    print(time.time())  # 当前的时间戳
    print(time.strftime('%Y-%m-%d %H:%M:%S'))  # 当前格式化好的时间
    
    # 计算10天后的时间戳
    ten_days_later = int(time.time()) - 60 * 60 * 24 * 3
    print('三天前:', ten_days_later)
    print('now:', int(time.time()))
    str_time = '2020-08-29 17:33:38'
    time_stamp = 1598693618
    
    # 时间元组
    # 时间戳转格式化好的时间
    print(time.localtime(time_stamp))  # 当前时区的时间元组
    print(time.gmtime(time_stamp))  # 标准时区的时间元组
    print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time_stamp)))  # 把时间戳转格式化时间
    
    # 格式化好的时间转时间戳
    time_tuple = time.strptime(str_time, '%Y-%m-%d %H:%M:%S')
    time_stamp_now = time.mktime(time_tuple)
    print(time_stamp_now)
    
    # 把时间戳转为格式化为年-月-日的时间
    now_ymd_str = time.strftime('%Y-%m-%d', time.localtime(time.time()))
    # 把年-月-日的时间转为时间戳
    now_ymd_stamp = time.mktime(time.strptime(now_ymd_str, '%Y-%m-%d'))

     四、random模块

    import random, string
    
    print(random.randint(1, 10))  # 随机整数生成,首尾都包含
    print(random.uniform(1, 10))  # 随机小数生成,首尾都包含
    print(random.choice(string.ascii_lowercase))  # 随机选择一个元素
    print(random.sample(string.ascii_lowercase, 3))  # 随机选择几个元素
    
    # 随机验证码练习
    l = [random.choice(string.digits) for i in range(6)]
    l2 = random.sample(string.digits, 6)  # 6位验证码,不会有相同的数字
    print(''.join(l))
    print(''.join(l2))
    
    l = [1, 2, 3, 4, 5, 6, 7, 8]
    print('打乱之前的', l)
    random.shuffle(l)
    print('打乱之后的', l)
    
    s = '2131432421134'
    print(sorted(s))
    print(sorted(s, reverse=True))
    
    d = {
        'xh': 100,
        'xb': 93,
        'xz': 88,
        'xl': 35
    }
    # 对字典进行排序
    result = sorted(d.items(), key=lambda x: x[1], reverse=True)  # key 这里传的是函数名,指明按字典的key还是value来排序
    print(result)

     五、sys模块

    sys.argv          # 命令行参数List,第一个元素是程序本身路径 ,用来获取运行python文件的时候,传过来的参数   
    sys.exit(n)        # 退出程序,正常退出时exit(0)
    sys.version        # 获取Python解释程序的版本信息
    sys.maxint         # 最大的Int值
    sys.path           # 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
    sys.platform       # 返回操作系统平台名称
  • 相关阅读:
    LeetCode "Median of Two Sorted Arrays"
    LeetCode "Distinct Subsequences"
    LeetCode "Permutation Sequence"

    LeetCode "Linked List Cycle II"
    LeetCode "Best Time to Buy and Sell Stock III"
    LeetCode "4Sum"
    LeetCode "3Sum closest"
    LeetCode "3Sum"
    LeetCode "Container With Most Water"
  • 原文地址:https://www.cnblogs.com/lhy-qingqiu/p/13611384.html
Copyright © 2020-2023  润新知