os是Python标准库中专门用来和操作系统交互的模块

os主要负责:

1
2
3
4
5
6
7
8
os
├── 文件和目录操作
├── 当前工作目录
├── 路径处理
├── 环境变量
├── 进程相关信息
├── 执行系统命令
└── 操作系统信息

1. 导入os

os属于Python标准库,不需要安装,只需要导入:

1
import os

2. 目录

2.1. os.getcwd():当前工作目录

简单函数签名:

1
os.getcwd() -> str

获取当前进程的工作目录

例子:

1
2
3
import os

print(os.getcwd())

输出:

1
/home/user/project

2.2. os.chdir():切换工作目录

简单函数签名:

1
os.chdir(path)

例子:

1
2
3
4
5
import os

os.chdir("/home/user/project")

print(os.getcwd())

输出:

1
/home/user/project

os.chdir()只修改当前Python进程的工作目录,不会修改外面的终端目录

2.3. os.listdir():查看目录内容

简单函数签名:

1
os.listdir(path='.') -> list[str]

例子:

1
2
3
files = os.listdir(".")

print(files)

输出:

1
2
3
4
5
6
[
"main.py",
"test.py",
"data",
"README.md"
]

也可以写目录:

1
os.listdir("/home/user")

2.4. os.mkdir():创建目录

简单函数签名:

1
2
3
os.mkdir(path, mode=0o777)

# mode:用来指定新建目录的权限模式

创建一级目录:

1
os.mkdir("data")

得到:

1
2
project/
└── data/

但是无法递归创建目录:

1
os.mkdir("data/images/train")

如果data、images还不存在,则就会报错

2.5. os.makedirs():递归创建目录

与os.mkdir()不同,os.makedirs()允许创建递归目录

简单函数签名:

1
2
3
4
os.makedirs(name, mode=0o777, exist_ok=False)

# mode:用来指定新建目录的权限模式
# exist_ok:如果目标目录已存在,要不要允许

例子:

1
os.makedirs("data/images/train")

Python会创建:

1
2
3
data/
└── images/
└── train/

2.6. os.rmdir():删除空目录

简单函数签名:

1
os.rmdir(path)

例子:

1
os.rmdir("data")

删除空目录,如果目录里有文件则会报错,也无法递归删除

2.7. os.removedirs():递归删除空目录

简单函数签名:

1
os.removedirs(path)

可以递归删除空目录,如果目录里有文件也会报错

2.8 os.remove():删除文件

简单函数签名:

1
os.remove(path)

例子:

1
os.remove("test.txt")

删除test.txt

3. 环境变量

3.1. os.environ:环境变量字典

存储了当前python进程继承到的环境变量,本质是一个字典

1
2
3
4
5
{
"PATH": "...",
"HOME": "/home/user",
"USER": "user",
...
1
2
3
import os

print(os.environ)

则会列出所有当前python进程继承到的环境变量

也可以查看单个环境变量:

1
print(os.environ["HOME"])

输出:

1
/home/user

如果变量不存在则会报错

4. 没啥用,先不学了