Python入门自学进阶——2--常用模块

Posted kaoa000

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python入门自学进阶——2--常用模块相关的知识,希望对你有一定的参考价值。

学习了Python的基本语法后,对Python的使用,最主要的就是熟悉使用各种模块。
一、时间模块 time
import time
使用print(help(time))可以打印time模块的帮助。
time() —— 返回当前的时间戳

time.sleep() —— 暂停执行一段时间,默认单位是秒
time.clock() —— 程序运行时计算CPU执行的时间,建议使用 time.perf_counter or time.process_time替代。

perf_counter() —— 标准的性能计数值,应该是程序从开始运行到此命令行所花费时间
process_time() —— 程序使用CPU的使用,上述程序中,sleep(2)是暂停程序运行,没有使用CPU,所以暂停时间不算在内。
gmtime() —— 获取一个当前的结构化时间。是UTC时间

我当前的系统时间是2021-9-27 10:41:21,此命令打印的时间差了8小时,小时是2,即这个时间是UTC时间(或叫GMT),tm_wday是一周的第几天,今天是星期一,就是0,tm_yday是一年中的第几天。
localtime() —— 同gmtime(),只是返回的是本地时间,即我们的东八区时间。

strftime() —— 转换一个时间元组为一个指定格式的字符串。时间元组就如上图的结果返回的形式。
Commonly used format codes:
%Y Year with century as a decimal number.
%m Month as a decimal number [01,12].
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%M Minute as a decimal number [00,59].
%S Second as a decimal number [00,61].
%z Time zone offset from UTC.
%a Locale’s abbreviated weekday name.
%A Locale’s full weekday name.
%b Locale’s abbreviated month name.
%B Locale’s full month name.
%c Locale’s appropriate date and time representation.
%I Hour (12-hour clock) as a decimal number [01,12].
%p Locale’s equivalent of either AM or PM.

strptime() —— 将一个特定格式的字符串时间转换为结构化时间。


三种表示时间的格式:时间戳、结构化时间、格式化时间
ctime() —— 将秒转换为时间

mktime() —— 将一个结构化时间转换为时间戳

还有一个关于时间日期的模块:datatime

二、随机数模块——random
random() —— 产生一个0~1之间的随机数
randint() —— 在一个范围内随机选择一个数。

choice() —— 在一个序列中随机选择一个字符。

print(random.choice([‘helloworld’,4,[1,2],(4,5)]),end= ’ ‘)
sample() ——从一个序列中选多个值。
print(random.sample([1,2,3,4,5,6],2)) 返回随机的两个元素序列 [5,3]
randrange() —— 在一个范围中选中一个,不包括最后的值。
print(random.randrange(1,3)) 返回范围内随机的一个值,不包括3,即左闭右开。
三、os模块
os.getcwd() ——获取当前工作目录
os.chdir(“dirname”) ——改变当前脚本工作目录,相当于shell下的cd
os.curdir ——返回当前目录(‘.’)
os.pardir ——获取当前目录的父目录字符串名:(’…’)
os.makedirs(‘dirname1/dirname2’) ——可生成多层递归目录
os.removedirs(‘dirname1’) ——若目录为空,则删除,并递归到上一级目录,若也为空,删除
os.mkdir(‘dirname’) ——生成单级目录,相当于mkdir dirname
os.rmdir(‘dirname’) ——删除单级空目录,不空无法删除。
os.listdir(‘dirname’) ——列出指定目录下的所有文件和子目录
os.remove() ——删除一个文件
os.rename(‘oldname’,‘newname’) ——重命名文件/目录
os.stat(‘path/filename’) ——获取文件/目录信息
os.sep ——输出操作系统特定的路径分隔符,win下为“\\”,Linux为“/”
os.linesep ——输出当前平台使用的行终止符,win下为“\\t\\n”,Linux为“\\n”
os.pathsep ——输出用于分隔文件路径的字符串
os.name ——输出字符串指示当前使用平台。win->‘nt’;Linux->‘posix’
os.system(‘bash command’) ——运行shell命令,直接显示
os.environ ——获取系统环境变量
os.path.abspath(path) —返回path规范化的绝对路径
os.path.split(path) ——将path分割成目录和文件名二元组返回
os.path.dirname(path) ——返回path的目录。其实就是os.path.split的第一个元素
os.path.basename(path) ——返回path最后的文件名,如果path以\\或/结果,就返回空值
os.path.exists(path) ——如果path存在返回True,否则False
os.path.isabs(path) ——如果path是绝对路径,返回True
os.path.isfile(path) ——如果path是一个存在的文件,返回True,否则False。
os.path.isdir(path) ——如果path是一个存在的目录,返回True。
os.path.join(path1[,path2[,…]]) ——将多个路径组合后返回
os.path.getatime(path) ——返回path所指向的文件或目录的最后存取时间
os.path.getmtime(path) ——返回path所指向的文件或目录的最后修改时间


注意返回的是一个结构化数据。

四、sys模块
os模块是跟操作系统交互,那么sys模块是跟解释器进行交互。
sys.argv —— 返回参数列表
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] ——

五、hashlib模块
加密模块,算哈希值
md5 —— MD5信息摘要算法
hashlib.md5()


同一个md5对象,持续对字符串加密,相当于对以前字符串串接起来的全部进行加密。
hashlib.sha256()—— 另一种算法,作用一样。
六、logging模块
处理日志功能,logging日志可分为debug(),info(),warning(),error(),critical()五个级别。

默认打印级别是warning,所以前两个debug和info没有打印出来
配置日志级别


format参数中的各种格式化串:
| %(name)s Name of the logger (logging channel)
| %(levelno)s Numeric logging level for the message (DEBUG, INFO,
| WARNING, ERROR, CRITICAL)
| %(levelname)s Text logging level for the message (“DEBUG”, “INFO”,
| “WARNING”, “ERROR”, “CRITICAL”)
| %(pathname)s Full pathname of the source file where the logging
| call was issued (if available)
| %(filename)s Filename portion of pathname
| %(module)s Module (name portion of filename)
| %(lineno)d Source line number where the logging call was issued
| (if available)
| %(funcName)s Function name
| %(created)f Time when the LogRecord was created (time.time()
| return value)
| %(asctime)s Textual time when the LogRecord was created
| %(msecs)d Millisecond portion of the creation time
| %(relativeCreated)d Time in milliseconds when the LogRecord was created,
| relative to the time the logging module was loaded
| (typically at application startup time)
| %(thread)d Thread ID (if available)
| %(threadName)s Thread name (if available)
| %(process)d Process ID (if available)
| %(message)s The result of record.getMessage(), computed just as
| the record is emitted

filemode可以为‘w’和‘a’,不加filename,则在屏幕输出。
有一个模块级别的函数logger

同时在控制台和文件中输出了日志。logger比较灵活。
使用logger.setLevel(logging.DEBUG)设置输出日志级别。
七、ConfigParser模块
主要用于配置文件的读、写、修改,ini文件形式。
[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9

[bitbucket.org]
User = hg

[topsecret.server.com]
Port = 50022
Forwardx11 = no

创建一个ini文件


读一个ini文件


config.has_section(‘topsecret.server.com’) #判断是否有这一节
config.set(‘bitbucket.org’,‘User’,‘zzzzzz’) #修改一项的值
config.remove_option(‘bitbucket.org’,‘User’) #删除一项
八、正则表达式
作用,匹配字符串
字符串本身的方法:

字符串提供的方法是完全匹配。引入正则,进行模糊匹配
正则表达式中的11个元字符:**.、^、$、、+、?、{}、[]、|、()、*




因为在正则表达式中\\有特殊意义,在python环境中\\也具有特殊意义。

正则表达式的方法:
findall() —— 所有结果都返回到一个列表里
search() ——返回匹配到的第一个对象(object),对象可以调用group()方法返回结果
match() —— 只在字符串开始匹配。
split() ——分隔字符串
sub() ——替换字符串
compile() —— 先将规则编译成一个规则对象。

findall()在使用分组时的特殊地方
使用组时,优先显示组中的内容,使用?:取消优先权

finditer()——返回一个迭代器

以上是关于Python入门自学进阶——2--常用模块的主要内容,如果未能解决你的问题,请参考以下文章

Python入门自学进阶-Web框架——20Django其他相关知识2

Python入门自学进阶-Web框架——20Django其他相关知识2

Python基础入门自学——16--常用内建模块2

Python基础入门自学——15--常用内建模块

Python入门自学进阶-Web框架——21DjangoAdmin项目应用

Python入门自学进阶-Web框架——21DjangoAdmin项目应用