在python社区中,有一句俗语叫‘py自带着电池’,指的就是在python标准库中的模块。python标准库提供了数百种模块。接下来我们一起来探究其中一些模块。

1.1  time 时间模块

时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按 秒计算的偏移量。我们运行“type(time.time())”,返回的是float

类型。

格式化的时间字符串(Format String)

结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日, 时,分,秒,一年中第几周,一年中第几天,夏令时)

1.1.1时间戳

time() 做计算来用

1201442-20180419091758910-1526837356.png

1.1.2  结构化时间

localtime() 当地时间(显示来用)

1201442-20180419091846543-1524191773.png

1.1.3  字符串时间

1201442-20180419091920392-914648712.png

1.2 random模块

1201442-20180419092004455-194211522.png

练习:随机生成一个验证码程序:验证码包括数字和字母,验证码的位数可通过传入参数来定义。

1201442-20180419092055212-1170274309.png

1.3 os模块

os.getcwd()               获取当前工作目录,即当前python脚本工作的目录路径

os.chdir("dirname")          改变当前脚本工作目录;相当于shell下cd

os.makedirs('dirname1/dirname2')    可生成多层递归目录

os.removedirs('dirname1')       若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推

os.mkdir('dirname')          生成单级目录;相当于shell中mkdir dirname

os.rmdir('dirname')           删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname

os.listdir('dirname')          列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印

os.remove()              删除一个文件

os.rename("oldname","newname")    重命名文件/目录

os.stat('path/filename')         获取文件/目录信息

os.linesep              输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"

os.pathsep              输出用于分割文件路径的字符串 win下为;,Linux下为:

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(path)的第一个元素

os.path.basename(path)         返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素

os.path.exists(path)           如果path存在,返回True;如果path不存在,返回False

os.path.isabs(path)           如果path是绝对路径,返回True

os.path.isfile(path)            如果path是一个存在的文件,返回True。否则返回False

os.path.isdir(path)            如果path是一个存在的目录,则返回True。否则返回False

os.path.join(path1[, path2[, ...]])将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

os.path.getatime(path)          返回path所指向的文件或者目录的最后存取时间

os.path.getmtime(path)         返回path所指向的文件或者目录的最后修改时间

os.path.getsize(path)           返回path的大小

os的join方法:最常用的方法

os.path.join(path1[, path2[, ...]])比较重要

用于路径拼接

1201442-20180419092621067-454064246.png

1.4 sys模块

sys.argv命令行参数List,第一个元素是程序本身路径

sys.exit(n) 退出程序,正常退出时exit(0)

sys.version 获取Python解释程序的版本信息

sys.maxint 最大的Int值

sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值

sys.platform 返回操作系统r平台名称

示例一:sys.argv就是传参执行程序

1201442-20180419093718093-1968024010.png

把传入的参数解析出来,并赋予参数对应的逻辑:

1201442-20180419093732676-1076343539.png

示例二:进度条的实现

1201442-20180419093753734-835099063.png

1.5 json模块(非常重要)

json在任何语言之间都可以传送,比eval还要强大。

1)dumps 方法

将数据通过特殊的形式转换为所有程序语言都认识的字符串

将字典类型转换为json字符串类型:

1201442-20180419092936904-1348621899.png

json.dumps 方法首先会把字典dic里面的‘’全部变成“”,然后就变成了一个字符串,无论是整型还是列表,都会变成jason字符串。

因为没有任何语言不能识别字符串,所以,你就知道为什么json那么厉害了吧。

2)loads 方法

将json编码的字符串再转换为python的数据结构

1201442-20180419093002350-867717463.png

3)dump方法

将数据通过特殊的形式转换为所有程序语言都认识的字符串,并写入文件

1201442-20180419093031048-1425527386.png

4) load方法

从数据文件中读取数据,并将json编码的字符串转换为python的数据结构。

1201442-20180419093048101-1981470661.png

对于字典,json会假设key是字符串(字典中的任何非字符串key都会在编码时转换为字符串),要符合JSON规范,应该只对python列表和字典进行编码。此外,在WEB应用中,把最顶层对象定义为字典是一种标准做法。

json编码的格式几乎和python语法一致,略有不同的是:

1)True会被映射为true

2)False会被映射为false

3)None会被映射为null

4)元组()会被映射为列表[],因为其他语言没有元组的概念,只有数组,也就是列表。

1.6pickle模块

pickle基本和json差不多,但是,它可以支持类,函数,支持的种类更多,也没有多大意义。

写入文件中的内容不可读,因为json处理出来的是字符串,而pickle处理出来的是字节类型。

1.7shelve模块(了解即可)

shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写;

这个类似字典的对象,key必须是字符串,而value可以是python所支持的类型。

1.8XML 模块

由于XML出现的非常早,现在很多领域依然再用,在java中xml是必学的。

所以必须了解xml。

如何利用python提供的模块对下面xml文件进行增删改查。

利用 xml.etree.ElementTreeMOKUAI 55TF模块

1201442-20180419093414266-1874685591.png

如上xml文件

1201442-20180419093525566-1502311511.png

如何自己创建一个xml文件?

1201442-20180419093555773-887453076.png

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐