python学习笔记(六):常用模块

2023-05-16

一、模块、包

什么是模块?

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

什么是包?

包,package本质就是一个文件夹,和文件夹不一样的是它有一个__init__.py文件,包是从逻辑上来组织模块的,也就是说它是用来存放模块的,如果你想导入其他目录下的模块,那么这个目录必须是一个包才可以导入。

导入模块

 
1
2
3
4
5
    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文件拿过来执行一次。

使用包中的模块需要在__init__.py文件中from . import xxx

模块分类:

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

二、os、sys模块

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
     import os
     print(os.getcwd())#取当前工作目录
     os.chmod("/usr/local",7)#给文件/目录加权限
     print(os.chdir("../"))#更改当前目录
     print(os.curdir)#当前目录
     print(os.pardir)#父目录
     print(os.makedirs("/usr/hehe/hehe1"))#递归创建文件夹,父目录不存在时创建父目录
     print(os.removedirs("/usr/hehe/hehe1"))#递归删除空目录
     print(os.mkdir("test1"))#创建文件夹
     print(os.rmdir("test1"))#删除指定的文件夹
     print(os.remove("test"))#删除文件
     print(os.listdir('.'))#列出一个目录下的所有文件
     os.rename("test","test1")#重命名
     print(os.stat("len_os.py"))#获取文件信息
     print(os.sep)#当前操作系统的路径分隔符
     print(os.linesep)#当前操作系统的换行符
     print(os.pathsep)#当前系统的环境变量中每个路径的分隔符,linux是:,windows是;
     print(os.environ)#当前系统的环境变量
     print(os.name)#当前系统名称
     print(os.path.abspath(__file__))#获取绝对路径
     print(os.path.split("/usr/hehe/hehe.txt"))#分割路径和文件名
     print(os.path.dirname("/usr/local"))#获取父目录
     print(os.path.basename("/usr/local"))#获取最后一级,如果是文件显示文件名,如果是目录显示目录名
     print(os.path.exists("/usr/local"))#目录/文件是否存在
     print(os.path.isabs("."))#判断是否是绝对路径
     print(os.path.isfile("/usr/local"))#判断是否是一个文件
     print(os.path.isdir("/usr/local"))#是否是一个路径
     print(os.path.join("/root",'hehe','a.sql'))#拼接成一个路径
     print(os.path.getatime("len_os.py"))#输出最近访问时间
     print(os.path.getmtime("len_os.py"))#输出最近访问时间

 

 
1
2
3
4
5
6
7
8
     sys.argv           命令行参数List,第一个元素是程序本身路径    
     sys.exit(n)        退出程序,正常退出时exit(0)
     sys.version        获取Python解释程序的版本信息
     sys.maxint         最大的Int值
     sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
     sys.platform       返回操作系统平台名称
     sys.stdout.write('please:')#向屏幕输出一句话
     val sys.stdin.readline()[:-1]#获取输入的值

三、random模块

 
1
2
3
4
5
6
7
8
9
10
11
     import random,string    
     print(random.random())#随机浮点数,默认取0-1,不能指定范围
     print(random.randint(1,20))#随机整数
     print(random.randrange(1,20))#随机产生一个range
     print(random.choice('x23serw4'))#随机取一个元素
     print(random.sample('hello',2))#从序列中随机取几个元素
     print(random.uniform(1,9))#随机取浮点数,可以指定范围
     [1,2,3,4,6,7]
     random.shuffle(x)#洗牌,打乱顺序,会改变原list的值
     print(x)
     print(string.ascii_letters+string.digits)#所有的数字和字母

四、time&datetime模块

time和datetime模块主要用于操作时间

时间有三种表示方式,一种是时间戳、一种是格式化时间、一种是时间元组

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        import datetime,time        
       print(time.timezone)#和标准时间相差的时间,单位是s
       print(time.time())#获取当前时间戳
       print(time.sleep(1))#休息几s
       print(time.gmtime())#把时间戳转换成时间元组,如果不传的话,默认取标准时区的时间戳
       print(time.localtime())#把时间戳转换成时间元组,如果不传的话,默认取当前时区的时间戳
       print(time.mktime(time.localtime()))#把时间元组转换成时间戳
       print(time.strftime("%y%m%d %H%M%S"))#将时间元组转换成格式化输出的字符串
       print(time.strptime("20160204 191919","%Y%m%d %H%M%S"))#将格式化的时间转换成时间元组
       print(time.struct_time)#时间元组
       print(time.asctime())#时间元转换成格式化时间
       print(time.ctime())#时间戳转换成格式化时间
       print(datetime.datetime.now())#当然时间格式化输出
       print(datetime.datetime.now()+datetime.timedelta(3))#3天后的时间
       print(datetime.datetime.now()+datetime.timedelta(-3))#3天前的时间

五、shelve模块

shelve模块用来持久化存储数据,比起json来,json只能存储list、字典这样的数据类型,如果是一个函数,一个类的话,就没有办法存储了,但是shelve模块可以,shelve模块是key-value存储的,value是你存储的内容,使用如下:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
         import shelve
         shelve.open('shelve_test'#打开一个文件 
         class Test(object):
             def __init__(self,n):
                 self.n
         Test(123)  
         t2 Test(123334)
         def func():
             print('hello')
         name ["alex","rain","test"
         d["test"name #持久化列表
         d["t1"t      #持久化类
         d["t2"t2
         d["t3"func
         print(d.get("t3"))#获取内容
         d.close()

六、hashlib模块

hashlib模块,主要用于加密相关的操作,在python3的版本里,代替了md5和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法。

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
                
         import hashlib
         
         hashlib.md5()
         m.update(b"Hello")
         m.update(b"It's me")
         print(m.digest())
         m.update(b"It's been a long time since last time we ...")
         
         print(m.digest()#2进制格式hash
         print(len(m.hexdigest())#16进制格式hash
         # ######## md5 ########
         
         hash hashlib.md5()
         hash.update('admin')
         print(hash.hexdigest())
         # ######## sha1 ########
         
         hash hashlib.sha1()
         hash.update('admin')
         print(hash.hexdigest())
         # ######## sha256 ########
         
         hash hashlib.sha256()
         hash.update('admin')
         print(hash.hexdigest())
         
         # ######## sha384 ########
         
         hash hashlib.sha384()
         hash.update('admin')
         print(hash.hexdigest())
         # ######## sha512 ########
         
         hash hashlib.sha512()
         hash.update('admin')
         print(hash.hexdigest())

七、configparser模块

configparser模块用来操作配置文件,用于生成和修改常见配置文档,python 3.x 中为configparser,python2中为ConfigParser。

一个常见的配置文件如下:

 
1
2
3
4
5
6
7
8
9
10
11
12
             [DEFAULT]
             ServerAliveInterval 45
             Compression yes
             CompressionLevel 9
             ForwardX11 yes
             
             [bitbucket.org]
             User hg
             
             [topsecret.server.com]
             Port 50022
             ForwardX11 no

如果想用python生成一个这样的文档怎么做呢?

 

 

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

下面是一些常用的操作,修改、添加、删除节点、属性

 
1
2
3
4
5
6
7
8
9
10
11
12
13
     import configparser    
     config configparser.ConfigParser()
     config.read('my.cnf')
     sections config.sections()#获取所有节点
     print(config.get('bitbucket.org','User'))#取对应节点下面key的值
     config.add_section('NEW')#增加节点
     config.set('NEW','test','true')#增加节点下面对应的熟悉和值
     config.set('DEFAULT','niu','222222')#修改节点下的属性
     config.write(open("my.cnf","w"))#写入修改后的文件
     config.has_option('NEW','test')#节点下是否有对应的属性
     config.has_section('NEW')#是否有该节点
     config.remove_section('NEW')#删除节点
     config.remove_option('NEW','test')#删除节点下面的key

八、re模块

re模块是正则表达式模块,用来匹配一些特定的字符串。

常用的正则表达式符号

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
         '.'     默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行
         '^'     匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r"^a","\nabc\neee",flags=re.MULTILINE)
         '$'     匹配字符结尾,或e.search("foo$","bfoo\nsdfsf",flags=re.MULTILINE).group()也可以
         '*'     匹配*号前的字符0次或多次,re.findall("ab*","cabb3abcbbac")  结果为['abb''ab''a']
         '+'     匹配前一个字符1次或多次,re.findall("ab+","ab+cd+abb+bba") 结果['ab''abb']
         '?'     匹配前一个字符1次或0次
         '{m}'   匹配前一个字符m次
         '{n,m}' 匹配前一个字符n到m次,re.findall("ab{1,3}","abb abc abbcbbb") 结果'abb''ab''abb']
         '|'     匹配|左或|右的字符,re.search("abc|ABC","ABCBabcCD").group() 结果'ABC'
         '(...)' 分组匹配,re.search("(abc){2}a(123|456)c""abcabca456c").group() 结果 abcabca456c
         '\A'    只从字符开头匹配,re.search("\Aabc","alexabc") 是匹配不到的
         '\Z'    匹配字符结尾,同$
         '\d'    匹配数字0-9
         '\D'    匹配非数字
         '\w'    匹配[A-Za-z0-9]
         '\W'    匹配非[A-Za-z0-9]
         's'     匹配空白字符、\t、\n、\re.search("\s+","ab\tc1\n3").group() 结果 '\t'

常用的匹配语法

 
1
2
3
4
5
         re.match 从头开始匹配        
         re.search 匹配包含
         re.findall 把所有匹配到的字符放到以列表中的元素返回
         re.splitall 以匹配到的字符当做列表分隔符
         re.sub      匹配字符并替换

转载于:https://www.cnblogs.com/sriba/p/8043772.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python学习笔记(六):常用模块 的相关文章

  • 网页视频流m3u8/ts视频下载

    现在很多视频网站播放流视频 xff0c 都不是采用mp4 xff0f flv文件直接播放 xff0c 而是采用m3u8 ts这种方式播放 简单说就是 xff0c 网站后台把视频切片成成百上千个xx ts文件 xff0c 一般10秒一个 xf
  • Windchill的JSP页面跳转到Ext页面的分析

    今天花了一天时间 xff0c 看了一块代码 xff0c 低效但是不得不看懂 具体内容是这样的 xff1a Windchill中按钮菜单栏嵌入了一个菜单项 xff0c 点击它会触发弹出一个新的浏览器页面 xff0c 相当于弹框 xff0c 让
  • C++类的定义和声明怎么写

    C 43 43 语言可以看成是C语言的扩展和改进 xff0c 相对于C语言 xff0c C 43 43 语言主要是增添了面向对象的特性 类 xff08 Class xff09 则是C 43 43 面向对象编程的实现方式 无论是何种编程语言
  • jmeter-常用性能指标分析

    概述 我们在用jmeter做性能测试的时候 xff0c 有一些关键性的性能指标需要去分析 但是由于开源工具本身的局限性 xff0c 这些指标在工具中的命名极易对我们造成混淆 所以我们需要对这些指标一一进行剖析 指标分析 响应时间 xff1a
  • 讨论76 怎么查一下我机器的内存?AIX环境

    oracle大型数据库系统在AIX unix上的实战详解 讨论76 怎么查一下我机器的内存 xff1f AIX环境 一个读者来信问勒令一个简单问题 xff1a 怎么查一下我机器的内存 xff1f AIX环境 问题 xff0c 我这里借用or
  • 数组

    数据类型 数组名 61 new 数据类型 元素个数或数组长度 数组中最小的索引是 0 xff0c 最大的索引是 数组的长度 1 获得数组的长度 xff0c 提供了一个 length属性 xff0c 在程序中可以通过 数组名 length 的
  • 静态方法不需要有对象,可以使用类名调用

    Public static void printData 表明此类方法为类方法 xff08 静态方法 xff09 静态方法不需要有对象 xff0c 可以使用类名调用 静态方法中不允许访问类的非静态成员 xff0c 包括成员的变量和方法 xf
  • matlab练习程序(曲面拟合)

    这里用到的还是最小二乘方法 xff0c 和上一次这篇文章原理差不多 就是首先构造最小二乘函数 xff0c 然后对每一个系数计算偏导 xff0c 构造矩阵乘法形式 xff0c 最后解方程组 比如有一个二次曲面 xff1a z 61 ax 2
  • 高铁在高速运行时的电力是如何提供的?

    高铁在高速运行时的电力是如何提供的 xff1f 铁路机车是个庞大的家族 xff0c 高铁只是这个大家庭的一个新成员 xff0c 如果要连篇累牍赘述其他车辆 xff0c 恐怕这个答案是写不下的 xff0c 故本文针对高速铁路进行讨论 一 高铁
  • RS232通信协议详解

    通信协议 所谓通信协议是指通信双方的一种约定 约定包括对数据格式 同步方式 传送速度 传送步骤 检纠错方式以及控制字符定义等问题做出统一规定 xff0c 通信双方必须共同遵守 因此 xff0c 也叫做通信控制规程 xff0c 或称传输控制规
  • 学习C/C++的电子书大全

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 在 学习C 43 43 的经典书籍 这篇文章中 xff0c 列出了C C 43 43 的经典书籍 xff1a C 43 43 Primer 第 5 版 中文版 英文版 Ef
  • 做Android开发的你还为找工作迷茫吗?通过直观的年薪来调准你的方向

    最近仍然有不少同学在找工作 xff0c 跳槽 现在跳槽不是一个好时机 可以看到现在的岗位明显减少了 很多公司都在赶今年的项目交付 xff0c 新的项目还没有规划好 xff0c 新一轮的融资也还没有到时间 很多在职的同学都在等到拿到年终奖再跳
  • 协议栈是什么

    1 协议栈是什么 简介 协议栈 xff0c 英语名称为Protocol stack xff0c 又称协议堆叠 xff0c 是计算机网络协议套件的一个具体的软件实现 协议套件中的一个协议通常是只为一个目的而设计的 xff0c 这样可以使得设计
  • 给linux杀杀毒吧

    linux是非常先进的 xff0c 但是没有绝对的安全 所以来杀杀毒吧 xff1a ClamAV是一个在命令行下查毒软件 xff0c 因为它不将杀毒作为主要功能 xff0c 默认只能查出您计算机内的病毒 xff0c 但是无法清除 xff0c
  • 服务器编程的语言,服务器编程语言的配置与CMS系统

    做过 1 服务器编程函数禁用找到 disable functions 61 该选项可以设置哪些服务器编程函数是禁止使用的 服务器编程中有一些函数的风险性还是相当大的 可以直接执行一些CentOS系统级脚本命令 如果允许这些函数执行 当服务器
  • Linux中断与进程切换,结合中断上下文切换和进程上下文切换分析Linux内核的一般执行过程...

    64 实验环境 OS Linux cj virtual machine 5 3 0 51 generic 虚拟机 QEMU 内核版本 5 3 4 调式方法 GDB PS xff1a 调试环境安装请看上一篇博客汇编级理解Linux系统调用 f
  • 【FreeRTOS】栈生长方向 portSTACK_GROWTH

    FreeRTOS新建任务时 xTaskCreate 函数有这样一段注释 span class token comment 代码已简化 span span class token comment If the stack grows down
  • 十大畅销【操作系统类】书籍,说说你看过哪本

    鸟哥的Linux 私房菜 深入理解计算机系统 Linux内核设计与实现 UNIX操作系统设计 操作系统是控制其他程序运行 xff0c 管理系统资源并为用户提供操作界面的系统软件的集合 操作系统 xff08 英语 xff1b Operatin
  • HP 阵列卡错误代码

    POST Error Messages The RAID Controller produces diagnostic error messages at reboot Many of these Power On Self Test PO
  • 我的2013 --那些划过生命线的人和事(大二.上)

    那些划过生命线的人和事 大二 上 又一次大清早被红马甲查赶出被窝 xff0c 让哥光着屁股就跑到隔壁宿舍去了 xff0c 真心恨死他们 这是一篇最早写于 2013 11 26 日的日志 xff0c 通过后来不断地增删改 xff0c 来总结

随机推荐

  • git提交到一半关闭时

    一 xff1a 出现问题 最近写东西 xff0c 在提交代码时 xff0c 突然出现一大推文件 忘记加 gitignore文件了 xff0c 导致所有的安装依赖也都上传了 所以 xff0c 点击了关闭按钮 xff0c 当下一次提交时 xff
  • 实录分享 | IBM马达:Kubernetes/Swarm on Mesos

    4月17日 xff0c Mesos爱好者在北京P2联合创业办公社迎来了第四次Mesos User Group约会 xff0c 下面是来自IBM马达的分享实录 作者介绍 xff1a 马达 xff0c IBM 高级软件工程师 xff0c Kub
  • 人工智能技术在呼叫中心的应用

    随着人工智能技术的不断发展 xff0c 研究成果被应用到各行各业 xff0c 今天我们主要分享一下人工智能技术在客户服务方面的应用 智能语音服务方面 xff1a 利用智能语音识别及分析技术 xff0c 在传统IVR基础上 xff0c 实时通
  • delphi开发回忆录——示例源码下载

    今天把最新的源码上传上来 xff0c 给有需要学习的朋友 xff0c 如果有朋友需要调试的话 xff0c 再向我要数据库 下载地址 xff1a http files cnblogs com edrp Demo rar
  • python异常继承树

    BaseException 43 SystemExit 43 KeyboardInterrupt 43
  • apk闪退 ncnn_README.md · benjaminwan/OcrLiteAndroidNcnn - Gitee.com

    ChOcrLiteAndroidOnnxToNcnn Demo APK下载 Gitee下载 https gitee com benjaminwan ocr lite android ncnn releases 介绍 Chineseocr L
  • 直立平衡车的姿态测量卡尔曼滤波算法原理与应用(附代码及调试截图)

    鄙人最近测量调试直立平衡车的姿态角度时 xff0c 用到了卡尔曼滤波算法 本着知其然还需知其所以然的学习精神 xff0c 在网上阅览了很多关于滤波原理及算法应用的文章 xff0c 加上自己的调试经验 xff0c 有了一点小小的心得 xff0
  • 【设计模式】我终于读懂了享元模式。。。

    祝大家开工大吉 x1f9e7 x1f9e7 x1f9e7 xff01 xff01 主页有红包哦 点这里 文章目录 祝大家开工大吉 x1f9e7 x1f9e7 x1f9e7 xff01 xff01 主页有红包哦 点这里 https blink
  • bus总线

    有时候两个组件也需要通信 xff08 非父子关系 xff09 当然Vue2 0提供了Vuex xff0c 但在简单的场景下 xff0c 可以使用一个空的Vue实例作为中央事件总线 eventBus js放在assets import Vue
  • 3层模式下长时间调用的进度条提示方案

    Winform 43 WCF 43 IIS 方式 任务执行时间在几分钟 xff0c 需要在客户端显示进度条 xff0c 与提示 原理 xff1a 客户端发出任务调用请求后 xff0c 服务启用一个独立线程来执行 xff0c 将执行过程与结果
  • [原]win7与linux网络共享挂载nfs配置

    网络文件系统 NFS Network File System 是一种将远程主机上的分区 目录 经网络挂载到本地的一种机制 xff0c 通过对网络文件系统的支持 xff0c 用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区 目录
  • Asp.net实现直接在浏览器预览Word、Excel、PDF、Txt文件(附源码)

    功能说明 输入文件路径 xff0c 在浏览器输出文件预览信息 xff0c 经测试360 极速 xff08 Chrome xff09 IE9 10 Firefox通过 分类文件及代码说明 DemoFiles 存放可测试文件 Default a
  • 不是技术也能看懂云计算,大数据,人工智能

    我今天要讲这三个话题 xff0c 一个是云计算 xff0c 一个大数据 xff0c 一个人工智能 xff0c 我为什么要讲这三个东西呢 xff1f 因为这三个东西现在非常非常的火 xff0c 它们之间好像互相有关系 xff0c 一般谈云计算
  • 那些在调试器里没问题(在开发环境没问题),但是独立运行却出问题的原因汇总...

    为什么80 的码农都做不了架构师 xff1f gt gt gt 1 静态编译的动态库依赖 xff0c 在调试器中会把程序的起始目录放在当前项目目录 xff0c 因此如果依赖库在当前项目目录则不会出问题 2 权限问题 xff0c 比如调试器可
  • Android-Parcelable理解与使用(对象序列化)

    2019独角兽企业重金招聘Python工程师标准 gt gt gt parcel定义介绍 xff1a android提供了一种新的类型 xff1a parcel xff08 英文解释 xff1a 包裹 xff0c 小包 xff09 xff0
  • 参考ElementUI的文档实现方案,实现自己组件库的说明文档

    实现使用markdown编写的个人组件库说明文档 前一篇文章实现了按需加载封装个人的组件库功能 xff0c 有了组件库 xff0c 当然还要有配套说明文档 xff0c 这样使者用起来才更方便 打包完成的dist目录是最终可放到服务器中 xf
  • 【设计模式】我终于读懂了代理模式。。。

    文章目录 x1f466 代理模式的基本介绍 x1f467 代理模式示意图 x1f469 静态代理 x1f468 应用实例 x1f476 思路分析图解 类图 x1f475 静态代理优缺点 x1f474 动态代理 x1f471 JDK 中生成代
  • 今年读过的还不错的计算机类书籍

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 今年读过的还不错的计算机类书籍 一年又快过去了 xff0c 今年恶补了很多计算机基础知识 xff0c 参kao了网上各种程序员必读书目 xff0c 看下来觉得很有收获 1
  • <ps> ps aux 和ps -aux和 ps -ef的选择

    Linux中的ps命令是Process Status的缩写 ps命令用来列出系统中当前运行的那些进程 ps命令列出的是当前那些进程的快照 xff0c 就是执行ps命令的那个时刻的那些进程 xff0c 如果想要动态的显示进程信息 xff0c
  • python学习笔记(六):常用模块

    一 模块 包 什么是模块 xff1f 模块实质上就是一个python文件 它是用来组织代码的 xff0c 意思就是说把python代码写到里面 xff0c 文件名就是模块的名称 xff0c test py test就是模块名称 什么是包 x