第五章 python标准库

系统相关:sys模块

  说明:

  sys是system的缩写,作用是:主要负责与python解释器进行交互,该模块提供了一系列用于控制python运行环境的函数和变量,用来获取操作系统和编译器的配置、环境设置及操作。

处理命令行参数:

  说明:sys.argv就是一个从程序外部获取参数的桥梁,可以从外部获取多个参数。通过sys模块的argv属性可以获取运行python程序的命令行参数。argv属性值是一个列表,列表元素和运行参数的关系为:

  

  获取方式:使用下标[]提取argv参数列表中的元素。

  在解释器启动后,argv列表包含了传递给脚本的所有参数,sys.argv[0]返回的是程序本身的路径,后面才是外部给予的参数。

  案例演示:

  

处理模块:sys.path

  说明:path列表是一个由目录名构成的列表,返回模块的搜索路径。python从中查找扩展模块(python源模块,编译模块,或者二进制扩展)。初始化时使用python环境变量的值。

  由于path列表只是一个普通的列表,所以可以在程序中使用sys模块操作模块搜索路径。

  

  输出结果:

  

  注意:使用sys.path属性可以修改python的当前环境配置。

  另外:通过sys模块可以查找内建模块,builtin_module_names列表包含python解释器中所有内建模块的名称:

  

  输出结果:

  

  

  

  同样,moudles字典包含所有加载的模块。import语句在从键盘导入内容之前会先检查这个字典,python在处理我们的脚本之前就已经导入了很多模块。

  案例演示:

  

  输出结果:

  说明:导入模块的多少,与python开发环境有关。

处理引用计数:

  说明:getrefcount函数可以返回对象的引用计数,也就是这个对象的使用次数。当object对象的引用计数为0时,系统会收回该对象即销毁该对象。

  

  这个列表被a、b、getrefcount()三处调用,故输出结果为3.

跟踪程序:

  说明:setprofiler函数允许我们配置一个分析函数(profiling  function)。这个函数会在每次调用某个函数或方法时被调用。

  

  

  输出结果:

  

  tracer函数会在test函数每次执行到新的一行时被调用。

  基于该函数提供的跟踪功能,在pdb模块提供了完整的调试框架。(了解)

处理标准的输出/输入:

  说明:stdin、stdout、stderr变量包含于标准I/O流对应的流对象。如果要更好地控制输出,但是print不能满足要求,他们就是需要的。也可以改变他们默认的输入输出设置,进行重定向输出和输入到其他设备(device),或者以非标准的方式处理他们。

  

  

  

  

  以上代码中,重定向了输出,通过stdout对象实现了write方法同时将输出内容转成小写处理。

退出程序:

  说明:执行到主程序的末尾时,python解释器会主动退出。但是如果需要中途退出程序,怎么办?

  可以调用sys.exit()函数,他有一个可选的参数(参数为空默认0,0代表正常退出)返回给调用它的程序。

  0表示正常退出,1-127表示非正常推出。

  

  注意:此时的sys.exit()并不是立即退出,而是引发systemexit异常,因此我们可以在程序中通过捕获该异常实现捕获对sys.exit()的调用。

  案例演示:

  

  输出结果:

  

日期时间相关:datetime模块

  说明:python中提供了多个用于对日期和时间进行操作的内置模块:time模块、datetime模块、和calendar模块。

  由于time模块只支持2038年前。建议直接使用datetime模块。datetime模块定义以下几个类:

  

  

  使用datetime模块主要是对前四个类的操作,另外,datetime模块还定义了两个常量:

  datetime.MINYEAR:

  datetime.date或datetime.datetime对象所允许的年份得最小值,该值为1

  datetime.MAXYEAR:

  datetime.date或datetime.datetime对象所允许的年份得最大值,该值9999

datetime.date类:

  定义:class  datetime.date(year,month,day)

  说明:datetime模块下的日期类,只能处理年月日这种日期时间,不能处理时分秒。在构造datetime.date对象的时候需要传递的参数有:

  

  主要的属性和方法有:

  

 

  案例展示:

  

  

  

  

datetime.time类:

  定义:class  datetime.time(hour[minute[second[microsecond[tzinfo]]]])

  说明:datetime模块下的时间类,只能处理时分秒。

  在构造datetime.time对象的时候需要传递的参数:

 

  

  主要的属性和方法:

  

  案例演示:

  

datetime.datetime类:

  定义:class datetime.datetime(year, month, day, hour=0,minute=0,second=0,microsecond=0,tzinfo=None)

  注意:datetime模块下的datetime类可以看作datetime.date和datetime.time的组合类。

  在构造datetime.datetime对象的时候需要传递的参数有:

  

  主要的属性和方法:

  

  

  

  

  

   

datetime.timedelta类

  

  

  

文件与目录操作:

  与操作系统进行交互:os模块

  案例演示:对文件进行重命名及删除文件,查找文件内容进行替换

  

  

  案例演示:使用os模块列出目录下的所有文件,改变当前目录

  

  Stat()函数:

  

  

  

  os.path模块处理文件名字:

  

  

  还可以利用os.path模块检查文件的属性:是否为文件、目录、链接符号等。

    

  

  

  os.system(command)执行命令:

  

  

文件模式匹配:glob模块

  

  

更好的打印python对象:pprint模块:

  

  

  

  

  

  

  

  

  

  

作用任意类:

  

  

  

序列化python对象:pickle模块

  使用dumps()和loads()进行序列和反序列化:

  

  使用dump()和load()方法序列化和反序列化:

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

 

  

 

  

 

 

 

 

 

 

  

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

 

 

 

 

  

 

posted @ 2021-10-09 15:08  清秀。  阅读(49)  评论(0)    收藏  举报