在前面的几篇推文中已经学习了Python中的数据结构、分支结构、循环结构、函数、面向对象编程。到现在为止,我们已经可以做很多的事情了。 如果有编程经验的朋友肯定会想到一个问题:到目前为止,我们所有的代码都是放在一个.py文件中的。很明显这不符合我们模块化开发的思想。
1、从语法上理解什么是Python模块 (1)第一种语法 导入模块的语法如下: import moduleName1, moduleName2, ... #moduleName是我们要导入的模块的模块名,其实就是.py文件的文件名(不包括后缀名) 调用模块中的函数的语法如下: moduleName1.functionName() 下面还是通过一个例子来理解Python模块化操作: 在support.py文件中定义两个函数:print1()、print2(),然后在test.py文件中调用support.py文件中定义的这两个函数 support.py如下: def print1(): print('我是support模块中的print1()')def print2(): print('我是support模块中的print2()') test.py如下: import supportsupport.print1()support.print2() 运行结果如下: (2)第二种语法 第(1)种语法调用模块中的函数的方式是moduleName.functionName(),这样似乎有点麻烦,我们也可以直接导入某一个模块中的函数,然后直接通过函数名来调用即可,不需要再指定模块名了。 语法如下: from moduleName import functionName#moduleName是要导入的模块名,functionName是要导入的模块中的函数名 接着上面的例子: from support import print1, print2print1()print2() 或者通过from moduleName import *可以一次性导入moduleName模块中的所有的函数。 (3)第三种语法:用as指定别名 场景1:为模块指定别名 我觉得support模块的名字比较长,每次调用的时候使用完整的support模块名有点繁琐。这个时候,你可以使用as来为这个模块指定一个更简单的别名。 import support as spsp.print1()sp.print2() 场景2:为模块中的某一个函数指定别名 from support import print1 as p1from support import print2 as p2p1()p2() 学习Python模块化编程的目的不光是为了方便管理自己的代码,同时也是为了方便使用第三方厂家开发的模块。Python社区非常非常的活跃,有很多优秀的免费的第三方模块供我们使用,所以这是学习Python必须要掌握的一个知识。 2、使用第三方模块openpyxl操作Excel文档 Python生态中有很多免费的优秀的第三方模块可以使用,这里我只介绍一下如何使用第三方模块操作Excel文档。 我们需要的模块是openpyxl,这是由第三方厂家开发的模块,操作Excel文件时可读可写。 因为openpyxl模块是第三方开发的模块,因此在使用它之前先要手动安装它。 这里我使用pip工具来安装,pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。使用pip安装openpyxl的命令如下: pip install openpyxl 安装成功后的提示如下: 原文档中的内容如下: 参考代码如下: 新建一个python文件为excel_operate.py,内容如下: import openpyxlclass ExcelOperate(object): def __init__(self, file_name): self.__file_name = file_name #加载Excel文件 self.__file = openpyxl.load_workbook(file_name) ''' 得到一个Excel文件中的所有表格名 ''' def get_sheets_name(self): names_list = self.__file.sheetnames return names_list ''' 修改一个Excel文件中的某一个表格的名字 ''' def change_sheet_name(self, sheet_name, new_sheet_name): work_sheet = self.__file[sheet_name] work_sheet.title = new_sheet_name self.__file.save(self.__file_name) ''' 读取Excel文件的某一个表格的内容,直接显示 ''' def read_sheet(self, sheet_name): work_sheet = self.__file[sheet_name] #最大存储数据的行号和列号 max_row_number = work_sheet.max_row max_col_number = work_sheet.max_column for i in range(1, max_row_number+1): for j in range(1, max_col_number+1): cell = work_sheet.cell(i, j) print(cell.value, end=' ') print() ''' 向Excel文件的某一个表格增加一行内容 ''' def append_row(self, sheet_name, new_row): work_sheet = self.__file[sheet_name] # new_row是列表结构 work_sheet.append_row(new_row) #保存结果 self.__file.save(self.__file_name) ''' 修改Excel的某一个表格的某一个单元格的内容 cell是一个字典:row、col、value ''' def modify_cell(self, sheet_name, cell): work_sheet = self.__file[sheet_name] work_sheet.cell(cell['row'], cell['col']).value = cell['value'] self.__file.save(self.__file_name) 新建一个test.py,然后导入我们刚才新建的python模块,下面只演示其中两种功能: #导入我们自己定义的excel_operate模块from excel_operate import ExcelOperateprint('roommates.xlsx中所有表格名为:')op = ExcelOperate('roommates.xlsx')#显示roommates.xlsx中的所有表格名name_lists = op.get_sheets_name()for name in name_lists: print(name)print('\nmy_roommates表格的内容如下:')#读取Excel文件中表格的内容op.read_sheet('my_roommates') 运行结果如下: 今天要学习的Python模块化编程内容比较少,到这儿就结束了。下一篇是Python入门系列的最后一篇推文了,学习的内容是:Python文件操作、Python中的异常处理。谢谢大家的关注。 |
|
来自: 星光闪亮图书馆 > 《Python学习》