Python深度学习:逻辑、算法与编程实战
上QQ阅读APP看书,第一时间看更新

1.6 Python模块

Python模块(Module)又称为库,Python拥有丰富的模块,且有很多第三方模块,另外开发者也可以自定义模块。模块能够有逻辑地组织Python代码段,极大地提高程序的开发效率。

Python模块是一个Python文件,以“.py”结尾,模块内包含定义函数、类和变量,模块里也能包含可执行的代码。

1.6.1 模块分类

Python中的模块其实就是一个Python文件(以“.py”为后缀名的文件),每一个模块都是一个独立的Python文件。在项目中可以使用不同模块,从而调用不同模块中的函数等功能。Python中的标准库与模块类似。

Python的模块可分为以下几种。

(1)系统内置模块。例如:sys、time、json模块等,典型示例如下。

① os.getcwd():获取当前工作目录。

② os.listdir("path"):列出指定目录下的所有文件和子目录,包括隐藏文件,返回值是列表。

③ os.remove("file"):删除单个文件。

④ time.time():获取当前的时间。

⑤ time.localtime([timestamp]):获取当前本地的时间,类型为struct_time。

⑥ time.sleep(timestamp):程序睡眠,单位为秒。

⑦ random.random():返回(0,1)之间的浮点型随机数。

⑧ random.uniform(a,b):返回区间(a,b)浮点型数字。

⑨ json.loads():将json字符串解码成Python对象。

⑩ json.dumps:将Python对象转换为json字符串。

(2)自定义模块。自定义模块是自己写的模块,对某段逻辑或某些函数进行封装后形成模块,以供其他函数调用。需要注意,自定义模块的名称不能和系统内置的模块重名,否则将无法导入系统的内置模块。

(3)第三方模块。第三方模块可以通过pip install命令进行安装。典型自定义模块如下。

① Requests:操作HTTP库。Python程序员一般使用它访问网络。

② Scrapy:实现网络爬虫。

③ BeautifulSoup:XML和HTML的解析库。

④ NumPy:数学库,为Python提供很多高级的数学方法。

⑤ Matplotlib:一个绘制图的库,可在分析数据中可视化数据。

⑥ Twisted:网络应用开发者需要的重要工具。

模块有如下四种表现形式。

(1)使用Python语言编写的py文件。

(2)已被编译为共享库或DLL的C或C++扩展。

(3)把一系列模块组织到一起的文件夹(文件夹中有一个“__init__.py”文件,该文件夹称为“包”)。

(4)使用C语言编写并连接到Python解释器的内置模块。

一个模块只会被导入一次,当使用import语句导入模块的时候,Python首先搜索文件,从Python的搜索路径进行搜索,搜索路径被存储在sys模块中的path变量。

1.6.2 自定义模块

自定义模块是将相关的代码编写在一个独立的文件中,并且将该文件命名为Python文件。包是一个文件夹,和别的文件夹不一样的是,其中包含一个“__init__.py”文件。包是从逻辑上来组织模块的,也就是说它是用来存放模块的。如果想导入其目录下的模块,那么这个目录必须首先是一个包才能导入。

模块文件创建完成以后,在另一个Python文件中可以导入模块,也可以调用模块内的函数、类、变量等。导入模块的方法如下。

1.使用import导入模块

格式:import module1[, module2[,... moduleN]]。

模块可以是自定义模块、Python内置模块和已经安装的第三方模块。

2.使用import as语句

格式:import modulename as name,该方法只能通过name来引用

可以将模块名modulename重新命名为name,有时候导入的模块或是模块属性名称已经在程序中使用了,或者太长不便输入,即可使用自己想要的名字替换模块的原始名称。

3.使用from import导入

格式:from Packagename import modulename1[, moduleclassname2[, ... moduleclassnameN]]。

从包Packagename中导入子类modulename1、modulename2,如果模块中存在许多子模块,则使用from import会更直截了当,在代码中可以直接使用导入的模块。

4.from modname import*

此方法可把一个模块的所有内容全都导入到当前的命名空间。

如果导入的模块与当前代码文件不在同一目录,则需要指定导入模块的目录,方法如下。

(1)导入sys模块。

(2)通过sys.path.append(path)函数导入自定义模块所在的目录。

(3)导入模块。

示例如下。

另外还可采用一种形式:from modulename import attrname as name,这种形式只能通过name来引用。

1.6.3 第三方模块的安装

Python第三方模块的安装方法如下。

1.Pip安装(远程安装)

Python3.4以上的版本自带Pip工具,安装完以后,在其安装目录的Script目录下即是pip工具,如图1-33所示。

图1-33 pip工具

可以使用pip命令安装Python第三方模块,方法如下。

在命令行窗口直接输入“pip(pip3)install第三方模块名”。

例如,输入pip3 install pymysql,即可安装pymysql模块,如图1-34所示。

图1-34 安装pymysql模块

例如,输入pip install pandas,即可安装pandas模块,如图1-35所示。

图1-35 安装pandas模块

安装完成以后,在Python 3.x安装目录的子目录“\Python37\Lib\site-packages”中可以看到安装的内容,如图1-36所示。

图1-36 安装的pymysql和pandas模块

卸载模块命令为“pip uninstall模块名”,pymysql卸载命令为pip uninstall pymysql,如图1-37所示。

图1-37 pip卸载模块

pip命令的其他功能如下。

(1)pip list:查看所有包。

(2)pip list--not required:查看不被依赖的包。

(3)pip list-outdated:查看过期的包。

(4)pip show pandas:查看某个包(pandas)的具体信息。

2.本地安装

下载模块文件包并将其复制到相关文件夹。

(1)setup.py文件的安装。打开cmd命令行工具,切换到setup.py文件所存在的文件夹,执行命令:“python3 setup.py install”,进行安装。

(2).whl文件的安装。打开cmd命令行工具,切换到whl文件所存在的文件夹,执行命令:“pip install whl文件”,进行安装。

3.其他安装

在PyCharm中安装第三方模块的方法前面已经做过介绍,在Anaconda中安装第三方模块将在后面章节介绍。