4-08python语法基础-内置模块-os(操作系统相关),sys(python解释器相关)模块

os模块

  • 这是和操作系统打交道的,

os模块:文件夹操作

import os
# print(os.getcwd())  # 获取当前文件的路径,不包括文件名
# 新建文件夹:
# os.mkdir('12')  # 在当前目录创建文件夹
# os.mkdir('11/11')  # 如果有父类目录,就会创建成功,否则就会失败,
# os.makedirs('1/2/3')  # 可以创建多层文件夹,
# 删除文件夹
# os.rmdir('1/2/3')  # 这是删除目录3,# 删除的方法不常用,最好不要随便删除,会找不到的,
# os.removedirs('1/2')  # 目录下为空就会全部删除包括这整个路径上的所有的文件夹,文件下有文件就不会删除,

os模块:os.path文件路径操作

print(os.path.abspath(__file__))  # 获取当前文件的绝对路径,包含文件名
print(os.path.dirname(os.path.abspath(__file__)))  # 获取当前文件父级路径(去掉文件名)
print(os.path.basename(os.path.abspath(__file__)))  # 只有文件名
print(os.path.exists(r'D:\AI\python_workspace\python-base'))  # 如果这个路径存在就返回True,这个有用,如果没有就可以创建了,
# r 是取消转译
print(os.path.isdir(r'D:\AI\python_workspace\python-base'))  # 判断是文件夹
print(os.path.isfile(r'D:\AI\python_workspace\python-base'))  # 判断是文件
print(os.path.join(r'D:\AI\python_workspace\python-base','Helloworld.py'))  # 自动拼接成为一个路径,这个可以根据不同的平台自动拼

sys模块

  • 这个是和python解释器打交道的,
    “sys” 是 “system”,是一个系统模块,该模块提供了一些接口,用户访问python解释器自身使用和维护的变量,同时模块中还提供了一些函数,而我们今天要讲解的 argv 就是其中一个函数。

sys模块:基本使用

import sys
print(sys.version)  # 取Python解释程序的版本信息
print(sys.platform)  # 返回操作系统平台名称

print('*'*6)
sys.exit()  # 退出程序,
print('-'*6)  # 下面的是不会打印执行的,

sys.path应用场景:Python脚本项目文件目录下的加载路径

解决Python脚本,import报错的问题,
print(sys.path) # 返回模块的搜索路径

先上示例:

import os
import sys
__dir__ = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, __dir__)

## 解释一下:
### 1.os.path.abspath():
os.path.abspath(__file__) 功能: 获取当前脚本的完整路径
注意:os.path.abspath(file)返回的是脚本的绝对路径,即setting.py文件的绝对路径。

### 2.os.path.dirname():
os.path.dirname(path)  功能:去掉文件名,返回目录
注意:os.path.dirname(path) 返回path的父路径;可嵌套使用,os.path.dirname(os.path.dirname(path) ) 返回父路径的父路径。

### 3.os.path.basename(file):
os.path.basename(__file__)  功能:返回脚本的文件名称

### 4.sys.path.insert(0, “/path”)
sys.path.insert(0, __dir__)
可以选择用sys.path.insert(0,‘/path’),这样新添加的目录会优先于其他目录被import检查

二、sys.argv

这里sys 就相当于一个模块,而argv就是模块里的一个函数。
“argv” 即 “argument value” 是一个列表对象,其中存储的是在命令行调用 python 脚本是提供的 “命令行参数”。
这里重点理解这句话,我们举例来说明:
先看一个简单的例子:

import sys
print(sys.argv[0])

我们看一下输出结果:
这里我们将 文件命名为 test.py 放在我们的系统目录下,在cmd下执行:python test.py

可以看到结果是:被调用的脚本文件名或全路径
这里需要强调的是:argv[0] 是 被调用的脚本文件名或全路径。
那我们改一下程序,再试试:

import sys
print(sys.argv[0])
print(sys.argv[1])

这里我们将代码改成 argv[1]
此时我们输入 python test.py hello 看一下运行结果:

看到这,是不是有的小伙伴就明白啦,sys.argv[]其实就是一个列表。
那我们再试一个,既然sys.argv是一个列表,我们就让它从第三个开始输出:

import sys
print(sys.argv[0])
print(sys.argv[1])
print(sys.argv[2:])


这次我们输入的是 1 2 3 4 5 ,我们期望从列表的第三个元素开始输出,结果也很我们期望的一样,

当然如果有更多的参数,我们可以一次取

import sys
print(sys.argv[0])
print(sys.argv[1])
print(sys.argv[2])
print(sys.argv[3])
print(sys.argv[4:])

讲到这里,sys.argv就被我们彻底搞懂了。

总结:
sys.argv[]是一个列表
sys.argv[0]是被调用的脚本文件名或全路径
sys.argv[1:]之后的元素就是我们从程序外部输入的,而非代码本身的,想要看到它的效果,就要将程序保存,从外部运行程序并给参数,这也是我们在cmd里面运行的原因。

posted @ 2023-03-28 07:04  技术改变命运Andy  阅读(26)  评论(0编辑  收藏  举报