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里面运行的原因。
技术改变命运