Python 常用模块

鳄鱼君

发表文章数:642

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Python » Python 常用模块
摘要: Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。 Python...

sys模块

sys 是一个和 Python 解释器关系密切的标准库,它和帮助我们访问和 Python 解释器联系紧密的变量和函数。在前面的代码学习中,你就已经见到过sys模块的用法了,这篇文章我们再次做一下介绍

常用函数

sys成员(变量和函数) 功能描述
sys.argv 获取运行 Python 程序的命令行参数。其中 sys.argv[0] 通常就是指该 Python 程序,sys.argv[1] 代表为 Python 程序提供的第一个参数,sys.argv[2] 代表为 Python 程序提供的第二个参数……依此类推。
sys.path 是一个字符串列表,其中每个字符串都是一个目录名,在使用 import 语句导入模块时,解释器就会从这些目录中查找指定的模块。
sys.exit() 通过引发 SystemExit 异常来退出程序。将其放在 try 块中不能阻止 finally 块的执行。你可以提供一个整数作为参数(默认为 0 ,标识成功),用来标识程序是否成功运行,这是 UNIX 的一个惯例。
sys.modules 返回模块名和载入模块对应关系的字典。
sys.platform 此变量是一个字符串,标识解释器当前正在运行的平台名称,它可能是标识操作系统的名称,也可能是标识其他种类的平台,如果运行 Jython 的话,就是 Java 虚拟机。
sys.stdin、sys.stdout、sys.stderr 这三个模块变量是类文件流对象,分别表示标准输入、标准输出和标准错误。简单理解,Python 利用 sys.stdin 获得输入,利用 sys.stdout 输出。
sys.flags 该只读属性返回运行 Python 命令时指定的旗标。
sys.getfilesystemencoding() 返回在当前系统中保存文件所用的字符集。
sys.getrefcount(object) 返回指定对象的引用计数。前面介绍过,当 object 对象的引用计数为 0 时,系统会回收该对象。
sys.getrecursionlimit() 返回 Python 解释器当前支持的递归深度。该属性可通过 setrecursionlimit() 方法重新设置。
sys.getswitchinterval() 返回在当前 Python 解释器中线程切换的时间间隔。该属性可通过 setswitchinterval() 函数改变。
sys.implementation 返回当前 Python 解释器的实现。
sys.maxsize 返回 Python 整数支持的最大值。在 32 位平台上,该属性值为 2**31-1;在 64 位平台上,该属性值为 2**63-1。
sys.executable 该属性返回 Python 解释器在磁盘上的存储路径。
sys.byteorder 显示本地字节序的指示符。如果本地字节序是大端模式,则该属性返回 big;否则返回 little。
sys.copyright 该属性返回与 Python 解释器有关的版权信息。
sys.version 返回当前 Python 解释器的版本信息。
sys.winver 返回当前 Python 解释器的主版本号。

实例引入

    import sys
    print(sys.argv)  #命令行参数,List类型,第一个参数为程序本身路径
    sys.exit(0) #退出程序,正常退出时exit(0)
    print(sys.version) #获取Python版本信息
    print(sys.path) #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
    print(sys.platform) #返回操作系统平台名称

很多方法你也可以自己简单尝试一下

os模块

os 模块代表了程序所在的操作系统,主要用于获取程序运行所在操作系统的相关信息。可以先导入 os 模块,然后输入 os.__all__ 命令(__all__ 变量代表了该模块开放的公开接口),即可看到该模块所包含的全部变量和函数。当然了内容是非常多的,全部要记住也是不可能的,这里也只是介绍常用方法。

常用函数

os 成员(变量、函数和类) 功能描述
os.name 返回导入依赖模块的操作系统名称,通常可返回 ‘posix’、’nt’、 ‘java’ 等值其中之一。
os.environ 返回在当前系统上所有环境变量组成的字典。
os.sep 返回路径分隔符。
os.getenv(key, default=None) 获取指定环境变量的值。
os.getpid() 获取当前进程 ID。
os.putenv(key, value) 该函数用于设置环境变量。
os.pathsep 返回当前系统上多条路径之间的分隔符。一般在 Windows 系统上多条路径之间的分隔符是英文分号(;);在 UNIX 及类 UNIX 系统(如 Linux、Mac os X)上多条路径之间的分隔符是英文冒号(:)。
os.linesep 返回当前系统的换行符。一般在 Windows 系统上换行符是“\r\n”:在 UNIX 系统上换行符是“\n”;在 Mac os X 系统上换行符是“\r”。
os.urandom(size) 返回适合作为加密使用的、最多由 N 个字节组成的 bytes 对象。该函数通过操作系统特定的随机性来源返回随机字节,该随机字节通常是不可预测的,因此适用于绝大部分加密场景。
os进程管理函数 功能描述
os.access(path, mode) 检验权限模式
os.chdir(path) 改变当前工作目录
os.chmod(path, mode) 更改权限
os.chown(path, uid, gid) 更改文件所有者
os.chroot(path) 改变当前进程的根目录
os.close(fd) 关闭文件描述符 fd
os.fchdir(fd) 通过文件描述符改变当前工作目录
os.getcwd() 返回当前工作目录
os.listdir(path) 返回path指定的文件夹包含的文件或文件夹的名字的列表。
os.makedirs(path[, mode]) 递归文件夹创建函数。像mkdir(), 但创建的所有intermediate-level文件夹需要包含子文件夹。
os.mkdir(path[, mode]) 以数字mode的mode创建一个名为path的文件夹.默认的 mode 是 0777 (八进制)。
os.open(file, flags[, mode]) 打开一个文件,并且设置需要的打开选项,mode参数是可选的
os.popen(cmd, mode=’r’, buffering=-1) 用于向 cmd 命令打开读写管道(当 mode 为 r 时为只读管道,当 mode 为 rw 时为读写管道),buffering 缓冲参数与内置的 open() 函数有相同的含义。该函数返回的文件对象用于读写字符串,而不是字节。
os.pathconf(path, name) 返回相关文件的系统配置信息。
os.read(fd, n) 从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串。
os.remove(path) 删除路径为path的文件。如果path 是一个文件夹,将抛出OSError; 查看下面的rmdir()删除一个 directory。
os.removedirs(path) 递归删除目录。
os.rename(src, dst) 重命名文件或目录,从 src 到 dst
os.renames(old, new) 递归地对目录进行更名,也可以对文件进行更名。
os.rmdir(path) 删除path指定的空目录,如果目录非空,则抛出一个OSError异常。
os.statvfs(path) 获取指定路径的文件系统统计信息
os.unlink(path) 删除文件路径
os.write(fd, str) 写入字符串到文件描述符 fd中. 返回实际写入的字符串长度
os.stat() 官方解释过于复杂,返回stat_result对象。我们一般可以这样用os.stat(filename).st_size,提取文件的大小,。

实例引入

    import os
    print(os.getcwd()) #获取当前工作目录,就是当前脚本工作的目录路径
    print(os.chdir('dirname')) #改变当前脚本的工作路径,相当于shell下的cd,就是切换目录
    print(os.curdir) #返回当前目录'.'当前目录
    print(os.pardir) #获取当前目录的父目录字符串名'..'上级目录
    print(os.removedirs('dirname1') ) #若目录为空则删除,并递归到上一级目录,若也为空,则删除,以此类推
    print(os.mkdir('dirname')) #生成单级目录,相当于shell中mkdir dirname
    print(os.makedirs('dirname1/dirname2')) #可生成多层递归目录
    print(os.rmdir('dirname')) #删除单级空目录,若目录不为空,则无法删除会报错,相当于shell中rmdir dirname
    print(os.listdir('dirname')) #列出指定目录下所有文件和子目录,包括隐藏文件,并以列表方式打印
    print(os.remove('dirname')) #删除一个文件
    print(os.rename('oldname','newname')) #重命名文件/目录
    print(os.stat('path/filename')) #获取文件/目录信息
    print(os.sep) #输出操作系统特定的路径分割符,windows下为"\\",Linux下为"/"
    print(os.linesep) #输出当前平台使用的行终止符,windows下为"\t\n或者\r\n",Linux下为"\n"
    print(os.pathsep) #输出用于分割路径的字符串,Windows下为'.'
    print(os.name) #输出字符串指示当前使用平台,Windows下为'nt',Linux下为'posix'
    print(os.environ) #获取系统环境变量
    print(os.system('bash command')) #运行shell命令,直接显示,system('ipconfig /all')
    print(os.path.abspath(path)) #返回path规范化的绝对路径
    print(os.path.split(path)) #将path分割成目录和文件名二元组返回,第一部分为文件目录,第二部分文件名
    print(os.path.dirname(path)) #返回path的路径,就是os.path.split(path)的第一个元素
    print(os.path.basename(path)) #返回path最后的文件名,path以/或\结尾,就会返回空值
    # 就是os.path.split(path)第二部分,文件名
    print(os.path.exists(path)) #如果path存在,True,如果path不存在,False
    print(os.path.isabs(path)) #如果path是绝对路径,True,相对路径就是没有开头的目录
    print(os.path.isfile(path)) #如果path是一个存在的文件,True,否则 False
    print(os.path.isdir(path)) #如果path是一个存在的目录,True,否则 False
    print(os.path.join(path[path1[,path2[,...]]])) #将多个路径组合后返回,第一个绝代路径之前的参数将被忽略
    print(os.path.getatime(path)) #返回path所指向的文件或者目录的最后存取时间
    print(os.path.getmtime(path)) #返回path所指向的文件或者目录的最后修改时间

os模块的函数最多了,更多详细介绍请查看os官方文档

time模块

Python 的 time 模块下有很多函数可以转换常见日期格式。如函数time.time()用于获取当前时间戳, 如下实例:

#!/usr/bin/python3

import time;  # 引入time模块

ticks = time.time()
print ("当前时间戳为:", ticks)

时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。话说我们知道那么早的时间干什么?

时间元组

很多Python函数用一个元组装起来的9组数字处理时间:

序号 字段
0 4位数年 2008
1 1 到 12
2 1到31
3 小时 0到23
4 分钟 0到59
5 0到61 (60或61 是闰秒)
6 一周的第几日 0到6 (0是周一)
7 一年的第几日 1到366 (儒略历)
8 夏令时 -1, 0, 1, -1是决定是否为夏令时的旗帜

上述也就是struct_time元组。这种结构具有如下属性:

序号 属性
0 tm_year 2008
1 tm_mon 1 到 12
2 tm_mday 1 到 31
3 tm_hour 0 到 23
4 tm_min 0 到 59
5 tm_sec 0 到 61 (60或61 是闰秒)
6 tm_wday 0到6 (0是周一)
7 tm_yday 一年中的第几天,1 到 366
8 tm_isdst 是否为夏令时,值有:1(夏令时)、0(不是夏令时)、-1(未知),默认 -1

那么你可以在pycharm编辑器输入下面的代码来查看效果:

import time
localtime=time.localtime()
print('当前时间为:',localtime)

常用函数

time常用函数 功能描述
time.asctime([t]) 将时间元组或 struct_time 转换为时间字符串。如果不指定参数 t,则默认转换当前时间。
time.ctime([secs]) 将以秒数代表的时间(格林威治时间)转换为时间字符串。
time.gmtime([secs]) 将以秒数代表的时间转换为 struct_time 对象。如果不传入参数,则使用当前时间。
time.localtime([secs]) 将以秒数代表的时间转换为代表当前时间的 struct_time 对象。如果不传入参数,则使用当前时间。
time.mktime(t) 它是 localtime 的反转函数,用于将 struct_time 对象或元组代表的时间转换为从 1970 年 1 月 1 日 0 点整到现在过了多少秒。
time.perf_counter() 返回性能计数器的值。以秒为单位。
time.process_time() 返回当前进程使用 CPU 的时间,以秒为单位。
time.sleep(secs) 暂停 secs 秒,什么都不干。
time.strftime(format[, t]) 将时间元组或 struct_time 对象格式化为指定格式的时间字符串。如果不指定参数 t,则默认转换当前时间。
time.strptime(string[, format]) 将字符串格式的时间解析成 struct_time 对象。
time.time() 返回从 1970 年 1 月 1 日 0 点整到现在过了多少秒。
time.timezone 返回本地时区的时间偏移,以秒为单位。
time.tzname 返回本地时区的名字。

实例引入

import time

localtime =time.asctime(time.localtime(time.time()))
print ("本地时间为 :", localtime)
print(dir(time)) #查看模块的全部属性和函数

time.sleep(3) #暂停3秒,什么也不会干
print(time.asctime((2019,12,12,17,0,5,0,0,0)))
print(time.ctime(40))  #将秒数为代表的时间转换为时间字符串
print(time.gmtime(50)) #将秒数为代表的时间转换为struct_time对象
print(time.gmtime()) #当前时间转换为struct_time对象
print(time.process_time())  #返回当前进程使用cpu的时间
print(time.perf_counter())  #返回性能计数器的值

# 格式化成2019-12-12 17:20:24形式
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# 格式化成Thu Dec 12 17:20:24 2019形式
print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))

# 将格式字符串转换为时间戳
a = "Thu Dec 12 17:20:24 2019"
print(time.mktime(time.strptime(a, "%a %b %d %H:%M:%S %Y")))

python中时间日期格式化符号:

指令 含义
%a 本地化的星期几的缩写名,比如 Sun 代表星期天
%A 本地化的星期几的完整名
%b 本地化的月份的缩写名,比如 Jan 代表一月
%B 本地化的月份的完整名
%c 本地化的日期和时间的表示形式
%d 代表一个月中第几天的数值,范固: 01~31
%H 代表 24 小时制的小时,范围:00~23
%I 代表 12 小时制的小时,范围:01~12
%j 一年中第几天,范围:001~366
%m 代表月份的数值,范围:01~12
%M 代表分钟的数值,范围:00~59
%p 上午或下午的本地化方式。当使用 strptime() 函数并使用 %I 指令解析小时时,%p 只影响小时字段
%S 代表分钟的数值,范围:00~61。该范围确实是 00~61,60 在表示闰秒的时间戳时有效,而 61 则是由于一些历史原因造成的
%U 代表一年中表示第几周,以星期天为每周的第一天,范围:00~53。在这种方式下,一年中第一个星期天被认为处于第一周。当使用 strptime() 函数解析时间字符串时,只有同时指定了星期几和年份该指令才会有效
%w 代表星期几的数值,范围:0~6,其中 0 代表周日
%W 代表一年小第几周,以星期一为每周的第一天,范围:00~53。在这种方式下,一年中第一个星期一被认为处于第一周。当使用 strptime() 函数解析时间字符串时,只有同时指定了星期几和年份该指令才会有效
%x 本地化的日期的表示形式
%X 本地化的时间的表示形式
%y 年份的缩写,范围:00~99,比如 2018 年就简写成 18
%Y 年份的完整形式。如 2018
%z 显示时区偏移
%Z 时区名(如果时区不行在,则显示为空)
%% 用于代表%符号

其实很多你也不必要去纠结过多,都是固定的写法,这里只是介绍了常用的,更详细的内容见官方文档,我没有必要在把内容照搬过来。

datatime模块

这个模块说真的,不常用,我在这里不再进行整理,初学者建议以后用到再过来查看datatime官方文档

shutil模块

    import shutil
    #将打开两个文件,将f1复制到f2中,需要指定原文件的编码格式
    f1=open('file.py',encoding='utf-8')
    f2=open('text.py','w',encoding='utf-8')
    shutil.copyfileobj(f1,f2)
   
    shutil.copyfile('file.py','file1.py')  #只拷贝文件,不会拷贝权限
    
    shutil.copymode(src,dst) #仅拷贝权限,内容、组、用户均不变
    
    shutil.copystat(src,dst) #拷贝状态的信息,包括权限,修改时间,最后一次修改时间
   
    shutil.copy(src,dst)  #拷贝文件和状态信息
   
    shutil.copy2(src,dst) #拷贝文件和状态信息
    
    shutil.copytree('file','new_file') #递归的去拷贝文件,相当于拷贝目录
    
    shutil.rmtree('new_file')#递归的去删除目录
    
    shutil.move(src,dst) #递归的去移动文件

压缩

shutil.make_archive(base_name,format,...)
shutil.make_archive('new','zip','C:\/Users\Administrator\.PyCharmCE2019.1\config\scratches')
  • base_name:压缩包的文件名,也可以是压缩包的路径,只是文件名时,保存至当前目录,否则保存至指定目录
  • format:压缩包种类,zip、tar、bztar、gztar
  • root_dir:要压缩的文件夹路径(默认当前路径)
  • owner:用户,默认当前用户
  • group:组,默认当前组
  • logger:用于记录日志,通常是logging.Logger对象

math模块

    ceil #取大于等于x的最小的整数值,如果x是一个整数,则返回x
    copysign #把y的正负号加到x前面,可以使用0
    cos #求x的余弦,x必须是弧度
    degrees #把x从弧度转换成角度
    e #表示一个常量
    exp #返回math.e,也就是2.71828的x次方
    expm1 #返回math.e的x(其值为2.71828)次方的值减1
    fabs #返回x的绝对值
    factorial #取x的阶乘的值
    floor #取小于等于x的最大的整数值,如果x是一个整数,则返回自身
    fmod #得到x/y的余数,其值是一个浮点数
    frexp #返回一个元组(m,e),其计算方式为:x分别除0.5和1,得到一个值的范围
    fsum #对迭代器里的每个元素进行求和操作
    gcd #返回x和y的最大公约数
    hypot #如果x是不是无穷大的数字,则返回True,否则返回False
    isfinite #如果x是正无穷大或负无穷大,则返回True,否则返回False
    isinf #如果x是正无穷大或负无穷大,则返回True,否则返回False
    isnan #如果x不是数字True,否则返回False
    ldexp #返回x*(2**i)的值
    log #返回x的自然对数,默认以e为基数,base参数给定时,将x的对数返回给定的base,计算式为:log(x)/log(base)
    log10 #返回x的以10为底的对数
    log1p #返回x+1的自然对数(基数为e)的值
    log2 #返回x的基2对数
    modf #返回由x的小数部分和整数部分组成的元组
    pi #数字常量,圆周率
    pow #返回x的y次方,即x**y
    radians #把角度x转换成弧度
    sin #求x(x为弧度)的正弦值
    sqrt #求x的平方根
    tan #返回x(x为弧度)的正切值
    trunc #返回x的整数部分

random模块

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《Python 常用模块》 发布于2019-12-09

分享到:
赞(0) 赏杯咖啡

文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册