文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python 模块

2023-01-30 21:57

关注

python的模块分为2种:

1.标准库(不需要安装,直接导入就可以使用的)

2.第三方库(必须要手动安装的)


先来介绍2个标准库:sys和os

#!/usr/bin/env python
# coding: utf-8
__author__ = 'www.py3study.com'

import sys
#打印环境变量
print(sys.path)

执行结果如下:

['E:\\python_script', 'E:\\python_script', 'C:\\Program Files\\Python36\\python36.zip', 'C:\\Program Files\\Python36\\DLLs', 'C:\\Program Files\\Python36\\lib', 'C:\\Program Files\\Python36', 'C:\\Program Files\\Python36\\lib\\site-packages']

这打印的,就是python的全局环境变量。这里面都是路径,路径里面存的都是什么呢?就是python导入一个库或者python内部自己进行调用的时候,它就在这些路径里面去找。

比如导入一个模块sys,那么sys模块必须在这些目录之中,至少存在一个目录里面。如果不存在,就会提示找不到该模块。

存在,就直接加载进来。

python标准库在 python安装路径\lib目录下,里面有N多.py结尾的文件,比如re模块,就是re.py


python第3方库一般存在 python安装路径\lib\site-packages 比如:

C:\Program Files\Python36\Lib\site-packages

比如Django,会存在这个目录里面。

我安装的是最新版Django,截图如下:

blob.png

sys.argv是用来获取命令行参数的,

直接输出sys.argv

print(sys.argv)

结果如下:

['E:/python_script/a.py']

在Pycharm里面执行,它会输出绝对路径。

在cmd里面,进入脚本目录,再次执行。它输出的是相对路径

blob.png

接收3个变量

e:\python_script>python a.py zhang li wang
['a.py', 'zhang', 'li', 'wang']

输出的结果是一个列表,列表的概念,后续会讲到。

服务器有些脚本,执行的时候,需要加参数。那么就需要用sys.argv来接收参数,程序做判断就可以了。


sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,所以参数从1开始。

比如想输出li

代码改成如下:

print(sys.argv[2])

在cmd里面执行

e:\python_script>python a.py zhang li wang
li

sys模块暂时先讲到这里,下面来讲os模块


os模块主要是操作系统相关的,比如查看系统负载状态,磁盘,创建文件。。。。

__author__ os
os.system

执行结果如下:

blob.png

把dir执行的结果赋值给一个变量,输出时,带一个标记。代码如下:

#!/usr/bin/env python
# coding: utf-8
__author__ = 'www.py3study.com'

import os

#执行命令,不保存结果
cmd_res = os.system("dir")
print("-->",cmd_res)

执行结果如下:

blob.png

可以看出结果是0

为什么是0呢?而不是文件列表呢?

os.system在执行的时候,是直接输出到屏幕了。

执行成功返回0,失败返回1。


如果想要输出文件列表,怎么办呢?

需要用到os.popen

os.popen() 方法用于从一个命令打开一个管道。

执行的结果是一个对象,存储在内存中。需要用read()才能读取,代码如下:

#!/usr/bin/env python
# coding: utf-8
__author__ = 'www.py3study.com'

import os

cmd_res = os.popen("dir").read()
print("-->",cmd_res)

执行结果如下:

blob.png


创建一个文件夹new_dir,代码如下:

#!/usr/bin/env python
# coding: utf-8
__author__ = 'www.py3study.com'

import os

os.mkdir("new_dir")

执行之后,在Pycharm编辑器左上角,会出现一个目录

blob.png


导入自定义的模块

这里介绍一个,最简单的用户登录模块

在同级目录下,创建文件login.py,代码如下:

#!/usr/bin/env python
# coding: utf-8
__author__ = 'www.py3study.com'

import getpass

_username = "xiao"
_password = "xiao123"
username = input("username:")
#password = getpass.getpass("password:")
password = input("password:")
print(username,password)

if _username == username and _password == password:
    print("Welcome user {name} login...".format(name=username))
else:
    print("Invalid username or password!")

创建文件a.py,代码如下:

import login

执行文件a.py,效果如下:

blob.png

注意:

在同级目录下,直接import 文件名,去掉后缀.py。就可以实现自定义的模块调用了。


现在我把login.py移动到new_dir目录下

再次运行a.py,就会报错

ModuleNotFoundError: No module named 'login'

首先,python 导入模块的时候,优先从当前目录中寻找文件login.py。如果不存在,会在环境变量中的文件中搜索。最后发现不存在时,提示 No module


这个问题,有3个解决办法:

1.把模块放到同级目录(不推荐)

2.把模块放到环境变量的其中一个目录(不推荐)

3.把new_dir目录,加入到环境变量中(推荐,这个后续会讲到)

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯