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

本文深入探讨Python中标准库、第三方库及自定义模块的调用机制,详细讲解sys和os模块的功能,包括路径打印、参数传递、系统交互等核心操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

初识两个标准库:sys和os

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

  • sys

    sys.path

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

在这里插入图片描述

在这里插入图片描述

例:

模块名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),表示打印当前脚本的相对路径,也可传参。

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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

1.pycharm中输入:

在这里插入图片描述

2.cmd中输入:

在这里插入图片描述

3.cmd中回车运行:

在这里插入图片描述

  • os

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

    os.system

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

在这里插入图片描述

以上方式只是呈现一种结果,所以可以利用变量赋值的方式将结果存下来并打印出来,如下图:
在这里插入图片描述

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

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

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

os.popen

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

在这里插入图片描述

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

在这里插入图片描述

os.mkdir

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

在这里插入图片描述

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

在这里插入图片描述

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

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

自写模块的调用

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

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

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

在这里插入图片描述

解决方式1:

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

解决方式2:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值