09-Python模块
导入模块
- 通过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
自定义模块
- 创建模块myModule
- 编辑模块myModule
def show():
print("我是自定义模块myModule")
- 导入模块myModule
import myModule
myModule.show() #输出:我是自定义模块myModule
包
- 包中含有多个模块,我们使用包来管理多个自定义模块
- 包中需要有一个空文件__init__.py,Python就会将这个目录解析为包。
- 创建包和模块
- 编辑模块myModule
def show():
print("我是自定义模块myModule")
- 导入模块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模块的更多相关文章
- python 学习第五天,python模块
一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py ...
- Python模块的介绍
Python模块的学习: 1.os模块: 下面只对os模块中几个比较常用的方法做一些简单的示例: os.system():这个方法在shell中体现的比较多,在dos命令行中也可以执行,下面就以在do ...
- python模块介绍- multi-mechanize 性能测试工具
python模块介绍- multi-mechanize 性能测试工具 2013-09-13 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 3739 ...
- python模块部分----模块、包、常用模块
0.来源:https://www.cnblogs.com/jin-xin/articles/9987155.html 1.导入模块 1.1模块就是一个python文件,模块名是文件名 1.2导入模块的 ...
- python 模块和包
一,模块 1,什么是模块? 常见的场景: 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py 的后缀. 但其实 import 加载的模块分为四个通用类别: 1,使用pyt ...
- Python 模块 re (Regular Expression)
使用 Python 模块 re 实现解析小工具 概要 在开发过程中发现,Python 模块 re(Regular Expression)是一个很有价值并且非常强大的文本解析工具,因而想要分享一下此 ...
- Python 模块之Logging——常用handlers的使用
一.StreamHandler 流handler——包含在logging模块中的三个handler之一. 能够将日志信息输出到sys.stdout, sys.stderr 或者类文件对象(更确切点,就 ...
- python安装环境配置、python模块添加、sublime text编辑器配置
前提: 本文讲述的是 windows环境 python相应的安装配置. 进入官网找安装包,官网地址如下:https://www.python.org/downloads/ 找到相应2.7.x或3.x ...
- Python - 模块(二)
目录 Python - 模块(二) re re下面的方法 logging os Python - 模块(二) re re模块提供了正则表达式的相关操作 主要字符介绍: . 通配符,除了换行符之外的任意 ...
- python模块(转自Yuan先生)
模块&包(****) 模块(modue)的概念: 在计算机程序的开 ...
随机推荐
- 2019-8-31-C#-转换类型和字符串
title author date CreateTime categories C# 转换类型和字符串 lindexi 2019-08-31 16:55:58 +0800 2018-2-13 17:2 ...
- 8.k8s之调动pod到指定节点与创建多容器pod并查找pod日志
官方文档:将pod分配给节点题目1:调度pod到指定节点 设置配置环境kubectl config use-context k8s 按如下要求创建并调度一个pod: - 名称:nginx-kusc00 ...
- Splashtop 教育行业用户增加700%
由于新冠肺炎大流行继续限制对大学.学院和K-12学校的计算机实验室的物理访问,Splashtop的销售数据表明,越来越多的学校开始使用远程访问软件作为使用计算机实验室资源的替代方法. 在6月到8月 ...
- Itext PDF 编辑 合并 图片转PDF以及表单域
Itext PDF 编辑 合并 图片转PDF以及表单域 编辑PDF x import com.itextpdf.text.pdf.BaseFont; import com ...
- IceRPC之深入理解调度管道->快乐的RPC
作者引言 很高兴啊,我们来到了IceRPC之深入理解调度管道->快乐的RPC,为上篇的续篇,深入理解常见的调度类型, 基础引导,有点小压力,打好基础,才能让自已不在迷茫,快乐的畅游世界. 传入请 ...
- Specs satisfying the `flutter_twitter (from `.symlinks/plugins/flutter_twitter/ios`)` dependency were found, but they required a higher minimum deployment target
MXFlutter的依赖发生变化,需要将iOS最低系统版本提高 修改之后,进入到MXFlutter目录,执行 flutter run 发现编译错误 咨询了下,mxflutter需要flutter为 用 ...
- NOIP模拟54
我觉得,不改变也很好. 前言 这题太难了,场上竟然无人切题..(听说别的学校切题的人不少.. T1 选择 解题思路 范围比较小,并且每个边的度也比较小,因此考虑 树形DP+状压 . 大概就是对于每一个 ...
- Qt内存回收机制
参考视频:https://www.bilibili.com/video/BV1XW411x7NU?p=16 Qt中内存的回收是自己完成的,实验中,我们自定义一个按钮,通过重写析构函数来观察现象. 新建 ...
- Python结合文件名称将多个文件复制到不同路径下
本文介绍基于Python语言,针对一个文件夹下的大量栅格遥感影像文件,基于其各自的文件名,分别创建指定名称的新文件夹,并将对应的栅格遥感影像文件复制到不同的新文件夹下的方法. 首先,我们来看一 ...
- jq data方法
data() 是 jQuery 的方法之一,用于在元素上存储和获取数据.它允许你将任意类型的数据附加到一个或多个元素上,并且可以通过选择器或元素对象来访问和操作这些数据. 代码中,_t.selectB ...