导入模块

  • 通过import导入模块
import time         #导入模块time
time.sleep(50) #睡眠50s
  • 导入模块并重命名
import time as t   #导入模块time重命名为t
t.sleep(50) #睡眠50s
  • 导入模块中部分内容
from time import sleep,time  #只导入sleep和time函数
sleep(50) #睡眠50s
  • 导入模块所有内容
from time import *     #导入所有函数
time.sleep(50) #睡眠50s

自定义模块

  1. 创建模块myModule

  1. 编辑模块myModule
def show():
print("我是自定义模块myModule")
  1. 导入模块myModule
import myModule
myModule.show() #输出:我是自定义模块myModule

  • 包中含有多个模块,我们使用来管理多个自定义模块
  • 包中需要有一个空文件__init__.py,Python就会将这个目录解析为包。
  1. 创建包和模块

  1. 编辑模块myModule
def show():
print("我是自定义模块myModule")
  1. 导入模块myModule
from myPackage import myModule      #从myPackage包中导入模块myModule

__name__属性

模块实际上就是一个普通的python文件,只不过从其他文件开始运行而已

模块myModule:

def show():
print("我是自定义模块myModule")
print(123)

主程序:

import myModule     #输出:123

解释:

  • 因为导入了模块myModule,所以会运行此模块,所以会输出123

如果不想运行模块中的部分代码,可以使用__name__属性

模块myModule.py:

def show():
print("我是自定义模块myModule")
if __name__ == '__main__':
print("我是主程序")

主程序main.py:

import myModule

结果:

  • 运行main.py时 =======> 无任何输出
  • 运行myModule.py时 ===> 输出:我是主程序

time模块

导入模块:

time.sleep(50)        #睡眠50s

常用函数:

t = time.time()       #返回当前的时间戳(自1970年1月1日8:00到现在的秒数)
t = time.ctime() #返回系统定义好的时间格式
t = time.gmtime() #返回时间对象(UTC时间),tm_wday的0表示周一
t = time.localtime() #返回时间对象(当地时间),tm_wday的0表示周一
t = time.mktime(<struct_time>) #通过时间对象返回时间戳
s = time.strftime(“%Y-%m-%d %H:%M:%S”,<struct_time>) #根据时间对象返回自定义格式(str类型)
t = time.strptime(“2018-10-08 21:55:01”,“%Y-%m-%d %H:%M:%S”) #根据自定义格式转化为时间对象
#参数2用于解析时间的格式
时间类
  • 时间对象是类time.struct_time创建的对象
import time
t = time.localtime() #返回时间对象(当地时间)

时间对象t的数据成员:

tm_year=2020	#年
tm_mon=6 #月
tm_mday=5 #日
tm_hour=11 #时
tm_min=0 #分
tm_sec=0 #秒
tm_wday=4 #星期
tm_yday=157 #一年中第几天
自定义时间格式
import time
t = time.localtime() #返回时间对象(当地时间)
s = time.strftime("%Y-%m-%d %H:%M:%S",t)
print(s) #输出:2020-06-05 11:07:56

解释:

  • strftime函数将时间对象转化为自定义格式的时间(str格式)
  • %Y等为占位符

常用占位符:

%Y	#年(4位数)
%y #年(2位数)
%m #月
%d #日
%H #时
%M #分
%S #秒

datetime模块

datetime也是一个比较常用的时间模块,与time模块类似

import datetime
print(datetime.datetime.now()) #返回系统定义的格式化时间

getpass模块

此模块用于登录,如输入密码时可以将密码隐藏。

import getpass
passwd=getpass.getpass("请输入密码:") #在终端上运行才可以隐藏输入密码
print(passwd)

注意: 需要打开终端运行此代码!才会又正确的现象。


math模块

导入模块:

import math

常用函数:

math.sqrt(4)    #求平方根
math.log(1,2) #求以 2 为底的 1 的对数
math.log10(1) #求以 10 为底 1 的对数
math.sin(10)
math.cos(10)
math.tan(10)
math.pi #3.141592653589793
math.e #自然对数的底

cmath模块

导入cmath模块:

import cmath
  • cmath与math类似,但cmath的计算结果为复数。
  • 若希望得到的结果不是复数,可用abs()求模。

示例:

import cmath
num = cmath.sqrt(4) #求平方根
print( num ) #输出:(2+0j)
print( abs(num) ) #输出:2.0

random模块

导入random模块:

import random

常用函数:

random.random()           #返回(0到1)的随机小数
random.randint(1,6) #返回[0,6]的随机整数
random.randrange(1,6) #返回[0,6)的随机整数
random.choice("hello") #返回随机一个字母,参数可以是一个列表
random.sample("hello",2) #随机返回两个元素,参数可以是一个列表

hashlib模块

通过hashlib可以通过不同的算法产生字符串的散列值

导入hashlib模块:

import hashlib

示例:

import hashlib
m=hashlib.md5() #使用md5进行加密,加密算法可以换(如sha256等)
m.update('hello'.encode('utf8')) #产生字符串'hello'的散列值
print(m.hexdigest()) #输出散列值
m.update('88888'.encode('utf-8')) #此时的散列值与之前的有关("hello88888")

解释:

  • 上例用的是md5算法,可根据情况选择合适的算法。

sys模块

这个模块与Python解释器相关

导入sys模块:

import sys

常用函数:

sys.argv       #返回参数列表,第一个元素为脚本文件名
sys.exit(0) #退出程序,0为正常退出
sys.version #返回解释器的版本信息
sys.maxint #返回最大整数值(Python2)
sys.maxsize #返回最大整数值(Python3)
sys.platform #返回操作系统平台名称,win为win32,linux返回linux

os模块

这个模块与操作系统交互

导入os模块:

import os
执行命令-system函数:
import os
os.system("ls -l") #运行命令,最后返回0则执行成功
执行命令-popen函数:
import os
ret=os.popen("dir") #返回一个管道对象
print(ret.read()) #得到命令的输出结果
ret.close() #使用完关闭
常用函数
import os
os.getcwd() # 返回当前工作目录
os.chdir("E:\MyFiles") # 转移工作目录
os.curdir # 返回.
os.pardir # 返回..
os.mkdir("Myfiles") # 创建一个文件夹
os.makedirs('abc\\def') # 连续创建多层目录
os.remove("1.txt") # 删除一个文件
os.rmdir("Myfiles") # 删除一个文件夹
os.removedirs('1\\2\\3') # 连续删除多层空目录(非空则不删)
os.listdir("Myfiles") # 返回一个列表,包含目录中所有文件个子目录
os.rename(src, dst) # 将src重命名为dst
os.stat("相册.zip") # 返回一个包含文件信息的元组
os.sep # 返回路径分隔符,win为\,linux为/
os.linesep # 返回行分隔符,win为\r\n,linux为\n
os.pathsep # 返回路径分隔符,win为;,linux为:
os.name # 返回当前平台,win为nt,linux为posix
os.environ # 返回一个包含系统环境变量的字典 os.path.abspath(path) #返回绝对路径
os.path.split(path) #将路径拆成目录和文件名的二元组返回
os.path.dirname(path) #返回path的目录,机械化地返回(若path为相对路径,则返回"")
os.path.basename(path) #返回路径最后的文件夹名或文件名(机械化地返回)
os.path.exists(path) #判断path是否存在
os.path.isabs(path) #判断path是否为绝对路径
os.path.isfile(path) #判断path是否为一个存在的文件
os.path.isdir(path) #判断path是否为一个存在的文件夹
os.path.getatime(path) #返回path最后存取时间
os.path.getmtime(path) #返回path最后修改时间

re模块-正则表达式

re模块利用正则表达式来匹配字符串

正则表达式
.		#匹配除换行外任一字符
+ #匹配1到多个字符
* #匹配0到多个字符
? #匹配0或1个字符
^ #只在开头匹配("^hello")
$ #只在结尾匹配("hello$")
| #或(比如com|cn匹配com或者cn) {}
{5} #匹配5次
{1,3} #匹配1到3次 []
[c,d] #匹配c或d
[a-zA-Z] #匹配所有字母
[^0-9] #匹配所有非数字 ()
((as)+) #分组 \d #匹配所有数字
\D #匹配所有非数字
\s #匹配所有空白字符
\S #匹配所有非空白字符
\w #匹配所有数字和字母
\W #匹配所有非数字和字母字符
\\\\ #匹配\

注意:

  • 匹配反斜杠本身时,需要经过两次转义。
  • \\\\向解释器转义得\\,再向re转义得到\
  • 在字符串前加r则取消转义。

示例:

文本:hello world		想匹配出world		可以用正则表达式:w..l
文本:abcaaa 想匹配出a和aaa 可以用正则表达式:a+
文本:r"a\b" 想匹配出'a\b' 可以用正则表达式:"a\\\\b"
文本:aabc1111abc222aaabc 想匹配出'abc'、'aabc' ... 可以用正则表达式:a+bc
使用re模块

导入re模块:

import re

findall():

ret=re.findall("w..l","hello world")    #返回一个列表(包含所有匹配项)

search():

ret=re.search("hello","hello,world")    #搜索第一个满足项,返回一个对象
ret.group() #返回匹配项

split():

ret = re.split("a","1a2a3a")          #用符号'a'分割字符串(返回一个列表)
ret = re.split("[2,a]","1a2a3a") #先用符号'2'分割,再用符号'a'分割

match():

ret=re.match("hello","hello,world")    #只在开头搜索,并且搜索第一个满足项,返回一个对象
ret.group() #返回匹配项

sub():

ret=re.sub("4+","5","4444abc44abc")    #把4+换成5(结果为'5abc5abc')
给匹配项命名:
ret=re.search("(?P<year>\d{4})-(?P<month>\d{2})","sf1998-12-16") #给匹配项命名
print(ret.group()) #输出全部匹配项(1998-12)
print(ret.group('year')) #输出year(1998)

解释:

  • ?P表示对此匹配项命名
  • 每一个匹配项用小括号( )包裹
  • 其中,(?P\d{4})表示正则为\d{4},名字为year

compile():

ret1=re.compile("4+")
ret2=ret1.findall("hello44,abc444")
print(ret2) #得到 ['44', '444']

解释:

  • 先定义好正则表达式,再进行匹配。
  • 此正则表达式可以多次使用。

最后

本文所总结的模块都是常用的,还存在许许多多其他的函数供我们调用,具体可以查看文档。
模块是Python强大的部分之一,需要好好学习。

09-Python模块的更多相关文章

  1. python 学习第五天,python模块

    一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py ...

  2. Python模块的介绍

    Python模块的学习: 1.os模块: 下面只对os模块中几个比较常用的方法做一些简单的示例: os.system():这个方法在shell中体现的比较多,在dos命令行中也可以执行,下面就以在do ...

  3. python模块介绍- multi-mechanize 性能测试工具

    python模块介绍- multi-mechanize 性能测试工具 2013-09-13 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 3739 ...

  4. python模块部分----模块、包、常用模块

    0.来源:https://www.cnblogs.com/jin-xin/articles/9987155.html 1.导入模块 1.1模块就是一个python文件,模块名是文件名 1.2导入模块的 ...

  5. python 模块和包

    一,模块 1,什么是模块? 常见的场景: 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py 的后缀. 但其实 import 加载的模块分为四个通用类别: 1,使用pyt ...

  6. Python 模块 re (Regular Expression)

    使用 Python 模块 re 实现解析小工具   概要 在开发过程中发现,Python 模块 re(Regular Expression)是一个很有价值并且非常强大的文本解析工具,因而想要分享一下此 ...

  7. Python 模块之Logging——常用handlers的使用

    一.StreamHandler 流handler——包含在logging模块中的三个handler之一. 能够将日志信息输出到sys.stdout, sys.stderr 或者类文件对象(更确切点,就 ...

  8. python安装环境配置、python模块添加、sublime text编辑器配置

    前提: 本文讲述的是  windows环境 python相应的安装配置. 进入官网找安装包,官网地址如下:https://www.python.org/downloads/ 找到相应2.7.x或3.x ...

  9. Python - 模块(二)

    目录 Python - 模块(二) re re下面的方法 logging os Python - 模块(二) re re模块提供了正则表达式的相关操作 主要字符介绍: . 通配符,除了换行符之外的任意 ...

  10. python模块(转自Yuan先生)

    模块&包(****)                                                                模块(modue)的概念: 在计算机程序的开 ...

随机推荐

  1. dotnet SemanticKernel 入门 开篇

    本文将开坑告诉大家什么是 SemanticKernel 以及如何使用框架 众所周知 GPT 是一个大语言模型,能够参与的输入和输出是文本内容.而想要让 GPT 完成各项功能,则需要对接现有的编程世界. ...

  2. html+jq实现全国省的单选,弹框输入input

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...

  3. Spring学习一(依赖注入/Bean/注解等)

    1.Spring依赖注入的方式. 2.依赖注入的类型 3.Bean的作用域 4.自动注入 5.使用注解的方式 6.在spring配置文件中引入属性文件 1.Spring依赖注入的方式 平常的java开 ...

  4. go-zero modd开发配置

    目录 go-zero modd开发配置 modd配置 项目打包编排文件 nginx配置文件 各服务中的配置里要写上如下配置 go-zero modd开发配置 modd配置 modd.conf #use ...

  5. windows10 64 解决 exec:"gcc" executable file not found in %PATH%报错问题

    1.下载编译好的包 https://sourceforge.net/projects/mingw-w64/files/mingw-w64/ 这里我选择64位的 2.解压完之后,配置环境变量. 解压完到 ...

  6. 启动docker某个image(镜像)的已经关闭的container(容器)

    1.创建一个后台运行 ubuntu 容器 root@haima-PC:/home/haima/Desktop# docker run -d --name ubuntu-lnmp ubuntu bf24 ...

  7. idea修改项目中某个模块名称

    1.修改模块名称 2.修改文件夹名称 3.修改本模块里面pom的名称 4.修改其他模块里面引用的名称

  8. 现代农业|AIRIOT智慧农业管理解决方案

    ​ 智慧农业是现代化技术在农业领域的应用和成果,其中物联网技术在促生产.保产量和降本增效方面起到了至关重要的作用.运用传感技术和软件平台系统对农业生产进行智能化平台化管理,解决掉传统农业问题的诸多痛点 ...

  9. 基于Python实现MapReduce

    一.什么是MapReduce 首先,将这个单词分解为Map.Reduce. Map阶段:在这个阶段,输入数据集被分割成小块,并由多个Map任务处理.每个Map任务将输入数据映射为一系列(key, va ...

  10. 基于webapi的websocket聊天室(三)

    上一篇处理了超长消息的问题.我们的应用到目前为止还是单聊天室,这一篇就要处理的多聊天室的问题. 思路 第一个问题,怎么访问不同聊天室 这个可以采用路由参数来解决.我把路由设计成这样/chat/{roo ...