Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用

模块初识:标准库、第三方库、自写模块的调用

标准库:不需要导入就可以直接使用的库,如getpath

第三方库:必须下载安装才能用。

初识两个标准库:sys和os

sys和os是两个模块,通过.调用其下面的功能

  • sys

    sys.path

结合print(sys.path),表示调用sys模块中的path方法,打印Python存放的资源路径。

Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用_第1张图片

Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用_第2张图片

例:

模块名sys.py----
内容:import sys
print(sys.path)

导入模块的原理:导入的模块本身是以文件的形式存在的。默认的寻找路径是先从当前目录开始寻找.py文件,再从程序的全局变量(标准库或第三方库)中去找要导入的模块。

比如此处想导入sys模块,但因为本身就是名为sys.py的文件,而其内部又没定义所需要的path的方法,所以这里就意味着是导入自己,正常情况下,这样形式的调用是有问题且应报错的。

所以,切记,自己所取的文件名不应该和要导入的模块名一样

print(sys.path)  # 功能是打印Python的环境变量

在这里插入图片描述

打印结果展示的是python的全局环境变量,这些路径是python中存放的标准库或第三方库中的资源路径或python内部调用所需用的资源。其中,site-packages一般存放第三方库中的东西,标准库一般存放在site-packages上一级的lib中,表现为以.py为后缀的文件。

sys.argv

结合print(sys.argv),表示打印当前脚本的相对路径,也可传参。

Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用_第3张图片

如上图,print(sys.argv) # 用pycharm自己调用的时候打印结果是绝对路径

Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用_第4张图片

实际上print(sys.argv)打印的是相对路径,如上图:在cmd中找到当前脚本的位置,通过 python的打印命令打印出结果,结果为相对路径:[‘09 sys_mod.py’] 。

Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用_第5张图片

输入python ‘09 sys_mod.py’ 1 2 3 打印结果是:[‘09 sys_mod.py’,‘1’,‘2’,‘3’] 表示给此文件传了参数,则打印结果中含有参数的打印结果。

打印结果为一组列表,如果从这组列表中取出2这个数,需要通过这组列表的下标号[2]来将结果列表中的字符串2打印出来。操作如下:

1.pycharm中输入:

Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用_第6张图片

2.cmd中输入:

在这里插入图片描述

3.cmd中回车运行:

Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用_第7张图片

  • os

    涉及到和系统交互的,使用os模块。

    os.system

    os.system(),结合windows的dir命令(DIR是DOS操作系统用来查看磁盘中文件的),可以将当前文件所在的目录下的文件都呈现出来,如下图:

Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用_第8张图片

以上方式只是呈现一种结果,所以可以利用变量赋值的方式将结果存下来并打印出来,如下图:
Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用_第9张图片

实际结果输出了一个0,想要的结果并没有存下来。

os.system()一调用,就输出了结果,执行完就没了,并没有保存。输出0代表的是命令执行成功与否,0代表命令执行成功,非0代表失败。

所以,os.system()只执行命令,不保存结果,需要保存结果,要调用os.popen()的方法。

os.popen

结合print(),直接使用os.popen(),打印的是内存的对象地址。不是所需结果,需要通过在此基础上继续调用.read()将存下来的结果读出来。

Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用_第10张图片

下图是通过继续调用.read()的方法实现将内容存储在一个临时的地方后,再将其读出来的目的。

Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用_第11张图片

os.mkdir

在当前文件所在目录下创建一个新目录。

Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用_第12张图片

见左侧目录结构中,并没有new_dir_1的目录,如图,在右侧通过调用os.mkdir()方法的方式,运行后可以新建一个目录,如下图:

Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用_第13张图片

以上是通过调用标准库中已有的模块来达成理想效果的方式。

除此之外,还可以自己写模块后,自己调用。

自写模块的调用

情况一:调用模块与被调用模块在同一目录下

1.在与调用模块同一目录下,自写一个可以运行的login.py文件:

Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用_第14张图片

Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用_第15张图片

2.在另一个文件09 sys_mod.py中,通过import导入该模块来调用:

Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用_第16张图片

情况二:调用模块与被调用模块不在同一目录下

如果调用模块与被调用模块不在同一目录下,则程序运行后,找不到那个被调用的模块。因为默认从该文件所在目录下寻找被调用模块,如果找不到,则会直接在全局变量中寻找。

Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用_第17张图片

Python学习笔记02:模块初识:标准库、第三方库&初识模块的调用_第18张图片

解决方式1:

将被调用文件拷贝到site-packages(存放第三方库资源的目录)下,再调用。即,使程序在寻找全局变量时找到该调用模块。

解决方式2:

修改环境变量:加一个路径,使程序到new_dir目录下去寻找。

你可能感兴趣的:(Python学习,python)