Python中的OS库
- [1. 导入os模块](#1. 导入os模块)
- [2. 文件和目录操作](#2. 文件和目录操作)
-
- [2.1 获取当前工作目录](#2.1 获取当前工作目录)
- [2.2 更改当前工作目录](#2.2 更改当前工作目录)
- [2.3 列出目录内容](#2.3 列出目录内容)
- [2.4 检查路径是否存在](#2.4 检查路径是否存在)
- [2.5 检查是否为文件或目录](#2.5 检查是否为文件或目录)
- [2.6 创建目录](#2.6 创建目录)
- [2.7 删除目录](#2.7 删除目录)
- [2.8 重命名文件或目录](#2.8 重命名文件或目录)
- [2.9 删除文件](#2.9 删除文件)
- [2.10 文件属性](#2.10 文件属性)
- [3. 环境变量](#3. 环境变量)
-
- [3.1 获取环境变量](#3.1 获取环境变量)
- [3.2 设置环境变量](#3.2 设置环境变量)
- [4. 进程管理](#4. 进程管理)
-
- [4.1 获取当前进程ID](#4.1 获取当前进程ID)
- [4.2 执行系统命令](#4.2 执行系统命令)
- [4.3 使用subprocess模块执行命令](#4.3 使用subprocess模块执行命令)
- [5. 操作系统信息](#5. 操作系统信息)
-
- [5.1 获取操作系统名称](#5.1 获取操作系统名称)
- [5.2 获取文件分隔符](#5.2 获取文件分隔符)
- [5.3 获取换行符](#5.3 获取换行符)
- [6. 文件路径操作](#6. 文件路径操作)
-
- [6.1 连接路径](#6.1 连接路径)
- [6.2 分割路径](#6.2 分割路径)
- [6.3 获取文件扩展名](#6.3 获取文件扩展名)
- [7. 文件操作示例](#7. 文件操作示例)
在Python中os模块提供了许多与操作系统进行交互的功能,如文件和目录操作、环境变量访问、进程管理等。它是Python标准库的一部分,无需额外安装即可使用
1. 导入os模块
python
import os
2. 文件和目录操作
2.1 获取当前工作目录
可以使用os.getcwd()函数获取当前工作目录
python
current_directory = os.getcwd()
print("当前工作目录:", current_directory)
2.2 更改当前工作目录
使用os.chdir(path)可以更改当前工作目录
python
os.chdir('/path/to/new/directory')
print("新的工作目录:", os.getcwd())
2.3 列出目录内容
os.listdir(path)函数可以列出指定目录下的所有文件和子目录
python
contents = os.listdir('.')
print("目录内容:", contents)
2.4 检查路径是否存在
使用os.path.exists(path)可以检查指定路径是否存在
python
path = '/path/to/check'
if os.path.exists(path):
print("路径存在")
else:
print("路径不存在")
2.5 检查是否为文件或目录
os.path.isfile(path)和os.path.isdir(path)分别用于检查路径是否为文件或目录
python
if os.path.isfile(path):
print("是文件")
elif os.path.isdir(path):
print("是目录")
else:
print("未知类型")
2.6 创建目录
使用os.mkdir(path)创建单级目录,使用os.makedirs(path)创建多级目录
python
os.mkdir('new_directory')
os.makedirs('parent/child')
2.7 删除目录
使用os.rmdir(path)删除空目录,使用shutil.rmtree(path)删除非空目录
python
import shutil
os.rmdir('empty_directory')
shutil.rmtree('non_empty_directory')
2.8 重命名文件或目录
使用os.rename(src, dst)重命名文件或目录
python
os.rename('old_name.txt', 'new_name.txt')
2.9 删除文件
使用os.remove(path)删除文件
python
os.remove('file_to_delete.txt')
2.10 文件属性
获取文件大小使用os.path.getsize(path),获取修改时间使用os.path.getmtime(path)
python
file_size = os.path.getsize('some_file.txt')
modification_time = os.path.getmtime('some_file.txt')
print("文件大小:", file_size, "字节")
print("修改时间:", modification_time)
3. 环境变量
3.1 获取环境变量
使用os.getenv(variable_name)获取指定环境变量的值
python
value = os.getenv('HOME')
print("HOME环境变量:", value)
3.2 设置环境变量
使用os.environ['variable_name'] = value设置环境变量
python
os.environ['MY_VAR'] = 'my_value'
print("MY_VAR环境变量:", os.getenv('MY_VAR'))
4. 进程管理
4.1 获取当前进程ID
使用os.getpid()获取当前进程的ID
python
pid = os.getpid()
print("当前进程ID:", pid)
4.2 执行系统命令
使用os.system(command)执行系统命令
python
os.system('ls -l')
4.3 使用subprocess模块执行命令
推荐使用subprocess模块来执行外部命令,因为它更灵活和安全
python
import subprocess
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
print("命令输出:", result.stdout)
5. 操作系统信息
5.1 获取操作系统名称
使用os.name获取操作系统的名称
python
print("操作系统名称:", os.name)
5.2 获取文件分隔符
使用os.sep获取当前操作系统使用的路径分隔符
python
print("路径分隔符:", os.sep)
5.3 获取换行符
使用os.linesep获取当前操作系统使用的换行符
python
print("换行符:", os.linesep)
6. 文件路径操作
6.1 连接路径
使用os.path.join(path, *paths)连接路径部件
python
path = os.path.join('directory', 'subdirectory', 'file.txt')
print("连接后的路径:", path)
6.2 分割路径
使用os.path.split(path)分割路径为目录和文件名
python
directory, filename = os.path.split('/path/to/file.txt')
print("目录:", directory)
print("文件名:", filename)
6.3 获取文件扩展名
使用os.path.splitext(path)分割文件名和扩展名
python
filename, extension = os.path.splitext('file.txt')
print("文件名:", filename)
print("扩展名:", extension)
7. 文件操作示例
python
import os
# 获取当前工作目录
current_dir = os.getcwd()
print("当前工作目录:", current_dir)
# 列出目录内容
contents = os.listdir(current_dir)
print("目录内容:", contents)
# 检查路径是否存在
path = 'example_dir'
if not os.path.exists(path):
os.mkdir(path)
print("创建目录:", path)
else:
print("目录已存在:", path)
# 创建文件
file_path = os.path.join(path, 'example.txt')
with open(file_path, 'w') as file:
file.write("Hello, os module!")
# 检查文件是否存在
if os.path.isfile(file_path):
print("文件存在:", file_path)
else:
print("文件不存在:", file_path)
# 获取文件大小
file_size = os.path.getsize(file_path)
print("文件大小:", file_size, "字节")
# 删除文件
os.remove(file_path)
print("删除文件:", file_path)
# 删除目录
os.rmdir(path)
print("删除目录:", path)