python中常用的模块的总结
python常用模块及第三方库功能简介

python常⽤模块及第三⽅库功能简介前⾔: Python吸引⼈的⼀个出众的优点就是它有众多的第三⽅库函数,可以更⾼效率的实现开发,经过整理与⽐对,整理了运维相关的常⽤模块,并将其功能简介,对其中重要的常⽤模块,接下来的博客会进⾏相应的详细介绍与功能使⽤介绍。
Python运维常⽤的20个库:1、psutil是⼀个跨平台库(https:///giampaolo/psutil)能够实现获取系统运⾏的进程和系统利⽤率(内存,CPU,磁盘,⽹络等),主要⽤于系统监控,分析和系统资源及进程的管理。
2、IPy(/haypo/python-ipy),辅助IP规划。
3、dnspython()Python实现的⼀个DNS⼯具包。
4、difflib:difflib作为Python的标准模块,⽆需安装,作⽤是对⽐⽂本之间的差异。
5、filecmp:系统⾃带,可以实现⽂件,⽬录,遍历⼦⽬录的差异,对⽐功能。
6、smtplib:发送电⼦邮件模块7、pycurl()是⼀个⽤C语⾔写的libcurl Python实现,功能强⼤,⽀持的协议有:FTP,HTTP,HTTPS,TELNET等,可以理解为Linux下curl命令功能的Python封装。
8、XlsxWriter:操作Excel⼯作表的⽂字,数字,公式,图表等。
9、rrdtool:⽤于跟踪对象的变化,⽣成这些变化的⾛⾛势图10、scapy(/projects/scapy/)是⼀个强⼤的交互式数据包处理程序,它能够对数据包进⾏伪造或解包,包括发送数据包,包嗅探,应答和反馈等功能。
11、Clam Antivirus免费开放源代码防毒软件,pyClamad,可以让Python模块直接使⽤ClamAV病毒扫描守护进程calmd。
12、pexpect:可以理解成Linux下expect的Python封装,通过pexpect我们可以实现对ssh,ftp,passwd,telnet等命令⾏进⾏⾃动交互,⽽⽆需⼈⼯⼲涉来达到⾃动化的⽬的。
python之openpyxl模块(最全总结足够初次使用)

python之openpyxl模块(最全总结⾜够初次使⽤)openpyxl模块Python_Openpyxl1. 安装pip install openpyxl2. 打开⽂件①创建from openpyxl import Workbook# 实例化wb = Workbook()# 激活 worksheetws = wb.active②打开已有>>> from openpyxl import load_workbook>>> wb2 = load_workbook('⽂件名称.xlsx')3. 储存数据# ⽅式⼀:数据可以直接分配到单元格中(可以输⼊公式)ws['A1'] = 42# ⽅式⼆:可以附加⾏,从第⼀列开始附加(从最下⽅空⽩处,最左开始)(可以输⼊多⾏)ws.append([1, 2, 3])# ⽅式三:Python 类型会被⾃动转换ws['A3'] = datetime.datetime.now().strftime("%Y-%m-%d")4. 创建表(sheet)# ⽅式⼀:插⼊到最后(default)>>> ws1 = wb.create_sheet("Mysheet")# ⽅式⼆:插⼊到最开始的位置>>> ws2 = wb.create_sheet("Mysheet", 0)5. 选择表(sheet)# sheet 名称可以作为 key 进⾏索引>>> ws3 = wb["New Title"]>>> ws4 = wb.get_sheet_by_name("New Title")>>> ws is ws3 is ws4True6. 查看表名(sheet)# 显⽰所有表名>>> print(wb.sheetnames)['Sheet2', 'New Title', 'Sheet1']# 遍历所有表>>> for sheet in wb:... print(sheet.title)7. 访问单元格(call)①单⼀单元格访问# ⽅法⼀>>> c = ws['A4']# ⽅法⼆:row ⾏;column 列>>> d = ws.cell(row=4, column=2, value=10)# ⽅法三:只要访问就创建>>> for i in range(1,101):... for j in range(1,101):... ws.cell(row=i, column=j)②多单元格访问# 通过切⽚>>> cell_range = ws['A1':'C2']# 通过⾏(列)>>> colC = ws['C']>>> col_range = ws['C:D']>>> row10 = ws[10]>>> row_range = ws[5:10]# 通过指定范围(⾏→⾏)>>> for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):... for cell in row:... print(cell)<Cell Sheet1.A1><Cell Sheet1.B1><Cell Sheet1.C1><Cell Sheet1.A2><Cell Sheet1.B2><Cell Sheet1.C2> # 通过指定范围(列→列)>>> for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):... for cell in row:... print(cell)<Cell Sheet1.A1><Cell Sheet1.B1><Cell Sheet1.C1><Cell Sheet1.A2><Cell Sheet1.B2><Cell Sheet1.C2># 遍历所有⽅法⼀>>> ws = wb.active>>> ws['C9'] = 'hello world'>>> tuple(ws.rows)((<Cell Sheet.A1>, <Cell Sheet.B1>, <Cell Sheet.C1>),(<Cell Sheet.A2>, <Cell Sheet.B2>, <Cell Sheet.C2>),...(<Cell Sheet.A8>, <Cell Sheet.B8>, <Cell Sheet.C8>),(<Cell Sheet.A9>, <Cell Sheet.B9>, <Cell Sheet.C9>))# 遍历所有⽅法⼆>>> tuple(ws.columns)((<Cell Sheet.A1>,<Cell Sheet.A2>,<Cell Sheet.A3>,...<Cell Sheet.B7>,<Cell Sheet.B8>,<Cell Sheet.B9>),(<Cell Sheet.C1>,...<Cell Sheet.C8>,<Cell Sheet.C9>))8. 保存数据>>> wb.save('⽂件名称.xlsx')9. 其他①改变 sheet 标签按钮颜⾊ws.sheet_properties.tabColor = "1072BA"②获取最⼤⾏,最⼤列# 获得最⼤列和最⼤⾏print(sheet.max_row)print(sheet.max_column)③获取每⼀⾏,每⼀列sheet.rows为⽣成器, ⾥⾯是每⼀⾏的数据,每⼀⾏⼜由⼀个tuple包裹。
模块1 4总结

模块1-4 总结引言本文是对模块1-4的学习内容进行总结和回顾。
本模块的主要内容包括Python 基础知识、条件语句、循环语句和函数等。
1. Python基础知识在模块1中,我们学习了Python的基础知识,包括变量、数据类型、运算符等。
Python是一种简单易学的编程语言,具有良好的可读性和强大的功能。
通过学习Python的基础知识,我们可以更好地理解后续学习的内容。
2. 条件语句在模块2中,我们学习了条件语句的使用。
条件语句是编程中常用的一种结构,通过判断条件的真假来决定程序的执行路径。
在Python中,条件语句使用if、elif和else关键字来实现。
通过条件语句,我们可以根据不同的条件执行不同的代码块。
3. 循环语句在模块3中,我们学习了循环语句的使用。
循环语句可以让我们重复执行一段代码,从而节省时间和精力。
Python中有两种循环语句:for循环和while循环。
for循环可以按照一定规律迭代遍历一个序列,而while循环则会根据一个条件判断执行代码块。
4. 函数在模块4中,我们学习了函数的定义和使用。
函数是一段封装了特定功能的代码块,可以实现代码的模块化和重复利用。
在Python中,我们可以使用def关键字来定义函数,并通过函数名和参数来调用函数。
函数可以接受任意数量的参数,并可以返回一个值。
5. 总结通过学习模块1-4的内容,我们掌握了Python基础知识、条件语句、循环语句和函数等重要概念。
这些知识不仅在Python编程中经常使用,也是其他编程语言中的基础内容。
通过不断实践和练习,我们可以更加熟练地运用这些知识,编写出更加高效和简洁的代码。
希望大家能够在接下来的学习中不断巩固和拓展模块1-4的知识,并能够灵活运用到实际项目中。
加油!。
python中常用的内置模块汇总

python中常⽤的内置模块汇总内置模块(⼀)Python内置的模块有很多,我们也已经接触了不少相关模块,接下来咱们就来做⼀些汇总和介绍。
内置模块有很多 & 模块中的功能也⾮常多,我们是没有办法注意全局给⼤家讲解,在此我会整理出项⽬开发最常⽤的来进⾏讲解。
osimport os# 1. 获取当前脚本绝对路径"""abs_path = os.path.abspath(__file__)print(abs_path)# 2. 获取当前⽂件的上级⽬录base_path = os.path.dirname( os.path.dirname(路径) )print(base_path)# 3. 路径拼接p1 = os.path.join(base_path, 'xx')print(p1)p2 = os.path.join(base_path, 'xx', 'oo', 'a1.png')print(p2)# 4. 判断路径是否存在exists = os.path.exists(p1)print(exists)# 5. 创建⽂件夹os.makedirs(路径)path = os.path.join(base_path, 'xx', 'oo', 'uuuu')if not os.path.exists(path):os.makedirs(path)# 6. 是否是⽂件夹file_path = os.path.join(base_path, 'xx', 'oo', 'uuuu.png')is_dir = os.path.isdir(file_path)print(is_dir) # Falsefolder_path = os.path.join(base_path, 'xx', 'oo', 'uuuu')is_dir = os.path.isdir(folder_path)print(is_dir) # True# 7. 删除⽂件或⽂件夹os.remove("⽂件路径")path = os.path.join(base_path, 'xx')shutil.rmtree(path)listdir,查看⽬录下所有的⽂件walk,查看⽬录下所有的⽂件(含⼦孙⽂件)import os"""data = os.listdir("/Users/feimouren/PycharmProjects/luffyCourse/day14/commons")print(data)# ['convert.py', '__init__.py', 'page.py', '__pycache__', 'utils.py', 'tencent']# ⽆法查看⽂件夹中⼦⽂件夹中的⽂件要遍历⼀个⽂件夹下的所有⽂件,例如:遍历⽂件夹下的所有mp4⽂件 data获取到的是⼀个⽣成器,在编列⽣成器时,会获取到三个元素,1.⽂件夹路径,2.⽂件夹中的⽂件夹,3.⽂件在遍历时,如果⽂件夹中还有⽂件夹,那么会继续遍历这个⽂件夹同样会获取data = os.walk("/Users/wupeiqi/Documents/视频教程/飞Python/mp4")for path, folder_list, file_list in data:for file_name in file_list:file_abs_path = os.path.join(path, file_name)ext = file_abs_path.rsplit(".",1)[-1]if ext == "mp4":print(file_abs_path)shutilimport shutil# 1. 删除⽂件夹"""path = os.path.join(base_path, 'xx')shutil.rmtree(path)# 2. 拷贝⽂件夹shutil.copytree("/Users/wupeiqi/Desktop/图/csdn/","/Users/wupeiqi/PycharmProjects/CodeRepository/files")# 3.拷贝⽂件shutil.copy("/Users/wupeiqi/Desktop/图/csdn/************************","/Users/wupeiqi/PycharmProjects/CodeRepository/")shutil.copy("/Users/wupeiqi/Desktop/图/csdn/************************","/Users/wupeiqi/PycharmProjects/CodeRepository/x.png")# 4.⽂件或⽂件夹重命名shutil.move("/Users/wupeiqi/PycharmProjects/CodeRepository/x.png","/Users/wupeiqi/PycharmProjects/CodeRepository/xxxx.png")shutil.move("/Users/wupeiqi/PycharmProjects/CodeRepository/files","/Users/wupeiqi/PycharmProjects/CodeRepository/images")# 5. 压缩⽂件# base_name,压缩后的压缩包⽂件# format,压缩的格式,例如:"zip", "tar", "gztar", "bztar", or "xztar".# root_dir,要压缩的⽂件夹路径# shutil.make_archive(base_name=r'datafile',format='zip',root_dir=r'files')# 6. 解压⽂件# filename,要解压的压缩包⽂件# extract_dir,解压的路径# format,压缩⽂件格式# shutil.unpack_archive(filename=r'datafile.zip', extract_dir=r'xxxxxx/xo', format='zip')sysimport sys# 1. 获取解释器版本"""print(sys.version)print(sys.version_info)print(sys.version_info.major, sys.version_info.minor, sys.version_info.micro)# 2. 导⼊模块路径print(sys.path)randomimport random# 1. 获取范围内的随机整数v = random.randint(10, 20)print(v)# 2. 获取范围内的随机⼩数v = random.uniform(1, 10)# 3. 随机抽取⼀个元素v = random.choice([11, 22, 33, 44, 55])# 4. 随机抽取多个元素v = random.sample([11, 22, 33, 44, 55], 3)# 5. 打乱顺序data = [1, 2, 3, 4, 5, 6, 7, 8, 9]random.shuffle(data)print(data)hashlibimport hashlibhash_object = hashlib.md5()hash_object.update("武沛齐".encode('utf-8'))result = hash_object.hexdigest()print(result)import hashlibhash_object = hashlib.md5("iajfsdunjaksdjfasdfasdf".encode('utf-8'))hash_object.update("武沛齐".encode('utf-8'))result = hash_object.hexdigest()print(result)"""在加密时,为了防⽌密码被撞出来,通常会在第⼆⾏代码处加盐,即添加我们⾃⼰知道的随机的字符串,这样就可以防⽌别⼈破解密码"""configparserxmljsonjson模块,是python内部的⼀个模块,可以将python的数据格式转换为json格式的数据,也可以将json格式的数据转换为python的数据格式。
Python常用的数据分析库有哪些?Python数据分析模块介绍

Python常用的数据分析库有哪些?Python数据分析模块介绍。
Python本身的数据分析功能并不强,需要一些第三方的扩展库来增强它的能力。
们课程用到的库包括NumPy、Pandas、Matplotlib、Seaborn、NLTK等,接下来将针对相关库一个简单的介绍,方便后面章节的学习。
在Python中,常用的数据分析库主要有以下几种:1、NumPy库NumPyPython源的数值计算扩展工具,它了Python对多维数组的支持,能够支持高级的维度数组与矩阵运算。
此外,针对数组运算也了量的数学函数库。
NumPy部分Python科学计算的基础,它具有以下功能:(1)快速的多维数据对象ndarray。
(2)高性能科学计算和数据分析的基础包。
(3)多维数组(矩阵)具有矢量运算能力,快速、节省空间。
(4)矩阵运算。
无需循环,可完成类似Matlab中的矢量运算。
(5)线性代数、随机数生成以及傅里叶变换功能。
2、Pandas库Pandas一个基于NumPy的数据分析包,它为了解决数据分析任务而创建的。
Pandas中纳入了量库和标准的数据模型,了地操作型数据集所需要的函数和方法,使用户能快速便捷地处理数据。
Pandas作为强而的数据分析环境中的重要因素之一,具有以下特:(1)一个快速的DataFrame对象,具有默认和自定义的索引。
(2)用于在内存数据结构和不同文件格式中读取和写入数据,比如CSV和文本文件、Excel文件及SQL数据库。
(3)智能数据对齐和缺失数据的集成处理。
(4)基于标签的切片、花式索引和数据集的子集。
(5)可以删除或入来自数据结构的列。
(6)按数据分组进行聚合和转换。
(7)高性能的数据合并和连接。
(8)时间序列功能。
Python与Pandas在各种学术和商业领域中都有应用,包括金融、神经科学、经济学、统计学、广告、网络分析等。
3、Matplotlib库Matplotlib一个用在Python中绘制数组的2D图形库,虽然它起源于模仿MATLAB图形命令,但它独立于MATLAB,可以通过Pythonic和面向对象的使用,Python中最出色的绘图库。
python的xlwings模块在excel中的使用总结

python的xlwings模块在excel中的使用总结1.引言1.1 概述概述部分的内容:引言是一篇文章的开篇,它用于介绍我们要讨论的主题以及文章的结构和目的。
在本篇文章中,我们将要讨论的主题是python的xlwings模块在Excel中的使用总结。
xlwings是一个强大的Python库,它提供了与Excel之间的连接和交互功能。
使用xlwings,我们可以通过Python编写脚本来操作Excel文件,实现一系列的功能,如读取数据、写入数据、格式化数据等。
在本篇文章中,我们将对xlwings模块进行详细的介绍,并总结其在Excel中的广泛应用和优势。
文章的结构如下所述,我们将从引言开始,接着讲述xlwings模块的简介,然后介绍它在Excel中的基本使用方法。
接下来,我们将总结xlwings 在Excel中的优势,并对其未来的发展进行展望。
通过本文的阅读,读者将了解到xlwings模块的基本概念和原理,掌握其在Excel中的使用方法,以及了解它在处理Excel数据时的优势和不足。
同时,本文也将展望xlwings在未来可能的发展方向和应用场景,为读者提供了解和利用这个强大模块的基础和思路。
在接下来的篇章中,我们将开始介绍xlwings模块的简介,为读者提供一个全面的了解。
请继续阅读下一章节"2.1 xlwings模块简介"。
1.2文章结构1.2 文章结构本文将按照以下结构来介绍和总结Python的xlwings模块在Excel 中的使用:1. 引言1.1 概述:介绍xlwings模块及其在Excel中的应用背景和重要性;1.2 文章结构:概述本文的整体结构和各个部分的内容;1.3 目的:明确本文的撰写目的和读者受益。
2. 正文2.1 xlwings模块简介:介绍xlwings模块的概念、功能和特点;2.2 在Excel中的基本使用方法:详细介绍xlwings模块在Excel 中的常见用法,包括如何连接Excel、读取和写入数据、操作和修改工作簿、执行宏等。
python常用函数及模块

python常⽤函数及模块原⽂来源于博客园和CSDN1.计算函数abs()--取绝对值max()--取序列最⼤值,包括列表、元组min()--取序列最⼩值len()--取长度divmod(a,b)---取a//b除数整数以及余数,成为⼀个元组pow(x,y)--取x的Y次幂pow(x,y,z)先x的Y次幂,再对Z取余round()--修改精度,如果没有,默认取0位range()快速⽣成⼀个列表2.其他函数callable()--返回是否可调⽤返回true或falseisinstance(a,type)---判断前⾯的是否是后⾯的这种类型,返回true或falsecmp(a,b)---判断ab是否相等,相等返回0,A<B返回-1,A>B返回1range()--快速⽣成⼀个列表,类型为listxrange()---快速⽣成⼀个列表,类型为xrange3.类型转换函数type()int()long()float()complex()--转换成负数hex()--转换成⼗六进制oct()--转换成⼋进制chr()--参数0-252,返回当前的ASCII码ord()--参数ASCII码,返回对应的⼗进制整数4.string函数str.capitalize()--对字符串⾸字母⼤写str.replace(a.b)---对字符串a改为bstr.split()---对字符串进⾏分割,第⼀个参数是分隔符,后⾯参数是分割⼏次。
string函数导⼊使⽤5.序列函数filter()--筛选返回为true返回成序列lambda--定义函数zip()---对多个列表进⾏压缩组合成⼀个新列表,但是如果多个列表的元素个数不同,组合的结果按最少元素的进⾏组合map--对多个列表进⾏压缩组合成⼀个新列表,但是如果多个列表的元素个数不同,结果是将所有的元素取出来,缺少的以None代替。
如果是None,直接组合,如果是函数,可以按函数进⾏组合reduce()--对每个元素先前两个执⾏函数,然后结果和后⼀个元素进⾏函数操作,如阶乘,阶加----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------urlencode与urldecode当url中包含中⽂或者参数包含中⽂,需要对中⽂或者特殊字符(/、&)做编码转换。
python中pathlib模块的基本用法与总结

python中pathlib模块的基本⽤法与总结前⾔相⽐常⽤的 os.path⽽⾔,pathlib 对于⽬录路径的操作更简介也更贴近 Pythonic。
但是它不单纯是为了简化操作,还有更⼤的⽤途。
pathlib 是Python内置库,Python ⽂档给它的定义是:The pathlib module – object-oriented filesystem paths(⾯向对象的⽂件系统路径)。
pathlib 提供表⽰⽂件系统路径的类,其语义适⽤于不同的操作系统。
1. pathlib模块下Path类的基本使⽤from pathlib import Pathpath = r'D:\python\pycharm2020\program\pathlib模块的基本使⽤.py'p = Path(path)print() # 获取⽂件名print(p.stem) # 获取⽂件名除后缀的部分print(p.suffix) # 获取⽂件后缀print(p.parent) # 相当于dirnameprint(p.parent.parent.parent)print(p.parents) # 返回⼀个iterable 包含所有⽗⽬录for i in p.parents:print(i)print(p.parts) # 将路径通过分隔符分割成⼀个元组运⾏结果如下:pathlib模块的基本使⽤.pypathlib模块的基本使⽤.pyD:\python\pycharm2020\programD:\python<WindowsPath.parents>D:\python\pycharm2020\programD:\python\pycharm2020D:\pythonD:\('D:\\', 'python', 'pycharm2020', 'program', 'pathlib模块的基本使⽤.py')Path.cwd():Return a new path object representing the current directoryPath.home():Return a new path object representing the user's home directoryPath.expanduser():Return a new path with expanded ~ and ~user constructsfrom pathlib import Pathpath_1 = Path.cwd() # 获取当前⽂件路径path_2 = Path.home()p1 = Path('~/pathlib模块的基本使⽤.py')print(path_1)print(path_2)print(p1.expanduser())运⾏结果如下:D:\python\pycharm2020\programC:\Users\AdministratorC:\Users\Administrator\pathlib模块的基本使⽤.pyPath.stat():Return a os.stat_result object containing information about this pathfrom pathlib import Pathimport datetimep = Path('pathlib模块的基本使⽤.py')print(p.stat()) # 获取⽂件详细信息print(p.stat().st_size) # ⽂件的字节⼤⼩print(p.stat().st_ctime) # ⽂件创建时间print(p.stat().st_mtime) # 上次修改⽂件的时间creat_time = datetime.datetime.fromtimestamp(p.stat().st_ctime)st_mtime = datetime.datetime.fromtimestamp(p.stat().st_mtime)print(f'该⽂件创建时间:{creat_time}')print(f'上次修改该⽂件的时间:{st_mtime}')运⾏结果如下:os.stat_result(st_mode=33206, st_ino=3659174698076635, st_dev=3730828260, st_nlink=1, st_uid=0, st_gid=0, st_size=543, st_atime=1597366826, st_mtime=1597366826, st_ctime=1597320585)5431597320585.76574751597366826.9711637该⽂件创建时间:2020-08-13 20:09:45.765748上次修改该⽂件的时间:2020-08-14 09:00:26.971164从不同.stat().st_属性返回的时间戳表⽰⾃1970年1⽉1⽇以来的秒数,可以⽤datetime.fromtimestamp将时间戳转换为有⽤的时间格式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、模块和包a.定义:模块用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py 结尾的python文件。
(例如:文件名:test.py,对应的模块名:test)包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个__init__.py的文件)b.导入方法import module_nameimport module_1的本质:是将module_1解释了一遍也就是将module_1中的所有代码复制给了module_1from module_name1 import name本质是将module_name1中的name变量放到当前程序中运行一遍所以调用的时候直接print(name)就可以打印出name变量的值代码例子:自己写的模块,其他程序调用,如下所示:模块module_1.py代码:复制代码1 name = "dean"2 def say_hello():3 print("hello %s" %name)调用模块的python程序main代码如下:(切记调用模块的时候只需要import模块名不需要加.py)import module_1#调用变量print(module_)#调用模块中的方法module_1.say_hello()复制代码这样运行main程序后的结果如下:1 D:\python35\python.exe D:/python培训/s14/day5/module_test/main.py2 dean3 hello dean45 Process finished with exit code 0import module_name1,module_name2from module_name import *(这种方法不建议使用)from module_name import logger as log(别名的方法)c.导入模块的本质就是把python文件解释一遍import module_name---->module_name.py---->module_name.py的路径---->sys.path导入包的本质就是执行该包下面的__init__.py关于导入包的一个代码例子:新建一个package_test包,并在该包下面建立一个test1.py的python程序,在package包的同级目录建立一个p_test.py的程序test1的代码如下:1 def test():2 print("int the test1")package_test包下的__init__.py的代码如下:1 #import test1 (理论上这样就可以但是在pycharm下测试必须用下面from .import test1)2 from . import test13 print("in the init")p_test的代码如下:1 import package_test #执行__init__.py2 package_test.test1.test()这样运行p_test的结果:1 D:\python35\python.exe D:/python培训/s14/day5/p_test.py2 in the init3 int the test145 Process finished with exit code 0从上述的例子中也可以看出:导入包的时候其实是执行包下的__init__.py程序,所以如果想要调用包下面的python程序需要在包下的__init__.py导入包下面的程序2、模块的分类a.标准库b.开源模块c.自动以模块3、时间模块time与datetimepython中常见的时间表示方法:a. 时间戳时间戳:从1970年1月1日00:00:00到现在为止一共的时间数(单位为秒)>>> time.time()1472016249.393169>>>b. 格式化的时间字符串c. struct_time(元组)相互之间的转换关系如下:1)time.localtime()将时间戳转换为当前时间的元组>>> time.localtime()time.struct_time(tm_year=2016, tm_mon=8, tm_mday=24, tm_hour=13, tm_min=27, tm_sec=55, tm_wday=2, tm_yday=237, tm_isdst=0)>>>2)time.gmtime()将时间戳转换为当前时间utc时间的元组>>> time.gmtime()time.struct_time(tm_year=2016, tm_mon=8, tm_mday=24, tm_hour=5, tm_min=35, tm_sec=43, tm_wday=2, tm_yday=237, tm_isdst=0)>>>3)time.mktime()可以将struct_time转换成时间戳>>> x = time.localtime()>>> xtime.struct_time(tm_year=2016, tm_mon=8, tm_mday=24, tm_hour=13, tm_min=39, tm_sec=42, tm_wday=2, tm_yday=237, tm_isdst=0)>>> time.mktime(x)1472017182.0>>>4)将struct_time装换成格式化的时间字符串>>> xtime.struct_time(tm_year=2016, tm_mon=8, tm_mday=24, tm_hour=13, tm_min=39, tm_sec=42,tm_wday=2, tm_yday=237, tm_isdst=0)>>> time.strftime("%Y-%m-%d %H:%M:%S",x)'2016-08-24 13:39:42'>>>5)可以将格式化的时间字符串转换为struct_time>>> time.strptime("2016-08-24 14:05:32","%Y-%m-%d %H:%M:%S")time.struct_time(tm_year=2016, tm_mon=8, tm_mday=24, tm_hour=14, tm_min=5, tm_sec=32, tm_wday=2, tm_yday=237, tm_isdst=-1)>>>6)将struct_time转换成Wed Aug 24 14:22:47 2016这种格式>>> xtime.struct_time(tm_year=2016, tm_mon=8, tm_mday=24, tm_hour=14, tm_min=22, tm_sec=47, tm_wday=2, tm_yday=237, tm_isdst=0)>>> time.asctime(x)'Wed Aug 24 14:22:47 2016'>>>7)将时间戳装换成Wed Aug 24 14:22:47 2016格式>>> x = time.time()>>> x1472019984.958831>>> time.ctime(x)'Wed Aug 24 14:26:24 2016'>>>复制代码1 %a 本地(locale)简化星期名称2 %A 本地完整星期名称3 %b 本地简化月份名称4 %B 本地完整月份名称5 %c 本地相应的日期和时间表示6 %d 一个月中的第几天(01 - 31)7 %H 一天中的第几个小时(24小时制,00 - 23)8 %I 第几个小时(12小时制,01 - 12)9 %j 一年中的第几天(001 - 366)10 %m 月份(01 - 12)11 %M 分钟数(00 - 59)12 %p 本地am或者pm的相应符13 %S 秒(01 - 61)14 %U 一年中的星期数。
(00 - 53星期天是一个星期的开始。
)第一个星期天之前的所有天数都放在第0周。
15 %w 一个星期中的第几天(0 - 6,0是星期天)16 %W 和%U基本相同,不同的是%W以星期一为一个星期的开始。
17 %x 本地相应日期18 %X 本地相应时间19 %y 去掉世纪的年份(00 - 99)20 %Y 完整的年份21 %Z 时区的名字(如果不存在为空字符)22 %% ‘%’字符复制代码datetime当前时间:datetime.datetime.now()1、随机模块randomrandom.randint(1,3)则可以取出随机1-3random.randrange(1,3)随机从范围内所及random.choice()传递的参数是序列包括字符串列表等>>> random.choice("hello")'l'>>> random.choice("hello")'o'>>> random.choice("hello")'e'>>>>>> random.choice(["我","爱","你"])'我'>>> random.choice(["我","爱","你"])'你'>>> random.choice(["我","爱","你"])'你'>>> random.choice(["我","爱","你"])'爱'>>>random.sample()随机从前面的序列取出两位>>> random.sample("hello",2)['l', 'o']>>> random.sample("hello",2)['h', 'l']>>> random.sample("hello",2)['h', 'o']>>>random的洗牌功能:>>> a=[1,2,3,4,5,6,7,8,9]>>> random.shuffle(a)>>> a[6, 3, 7, 4, 1, 8, 9, 2, 5]>>>生成随机验证码的例子:复制代码1 import string2 import random3 a = "".join(random.sample(string.ascii_lowercase,4))4 print(a)5 b = "".join(random.sample(string.ascii_lowercase+string.digits,5))6 print(b)78 c = "".join(random.sample(string.ascii_uppercase+string.digits+string.ascii_lowercase,4))9 print(c)10 d ="".join(random.sample(string.ascii_letters+string.digits,4))11 print(d)复制代码运行结果如下:复制代码1 D:\python35\python.exe D:/python培训/s14/day5/验证码2.py2 tbdy3 6te4b4 Z2UA5 v8He67 Process finished with exit code 0复制代码5、os模块复制代码1 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径2 os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd3 os.curdir 返回当前目录: ('.')4 os.pardir 获取当前目录的父目录字符串名:('..')5 os.makedirs('dirname1/dirname2') 可生成多层递归目录6 os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推7 os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname8 os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell 中rmdir dirname9 os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印10 os.remove() 删除一个文件11 os.rename("oldname","newname") 重命名文件/目录12 os.stat('path/filename') 获取文件/目录信息13 os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"14 os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"15 os.pathsep 输出用于分割文件路径的字符串16 输出字符串指示当前使用平台。