Os模块
Python 的 os 模块提供了一些用于操作文件和目录的常用功能。以下是一些常见的 os 模块操作,包括文件和目录的管理、路径操作、环境变量等。
1. 文件和目录操作
创建目录
os.mkdir(path):创建一个目录。os.makedirs(path):递归地创建目录,创建多层目录。
删除目录
os.rmdir(path):删除空目录。os.removedirs(path):递归地删除空目录。os.rmdir和os.removedirs只能删除空目录,若要删除非空目录需要使用shutil模块的rmtree方法。
删除文件
os.remove(path):删除指定文件。os.unlink(path):与remove等价,也是删除指定文件。
列出目录内容
os.listdir(path):列出指定路径下的所有文件和目录(不包括子目录内容)。
判断文件或目录是否存在
os.path.exists(path):判断路径是否存在。os.path.isdir(path):判断路径是否为目录。os.path.isfile(path):判断路径是否为文件。
import os
# 判断目录是否存在
if os.path.exists('test_directory'):
print('Directory exists')
# 判断是否是文件
if os.path.isfile('file.txt'):
print('This is a file')
重命名文件或目录
os.rename(old, new):重命名文件或目录。
复制文件(使用 shutil)
shutil.copy(src, dst):复制文件。shutil.copytree(src, dst):递归复制目录。
import shutil
# 复制文件
shutil.copy('source.txt', 'destination.txt')
# 递归复制目录
shutil.copytree('source_dir', 'destination_dir')
2. 路径操作
获取当前工作目录
os.getcwd():返回当前工作目录的路径。
更改当前工作目录
os.chdir(path):改变当前工作目录。
路径拼接
os.path.join(path1, path2, ...):将多个路径组件拼接成一个完整路径。
import os
# 拼接路径
full_path = os.path.join('folder', 'subfolder', 'file.txt')
print(full_path) # 输出:folder/subfolder/file.txt
获取文件名和扩展名
os.path.basename(path):返回路径中的文件名。os.path.splitext(path):返回文件的扩展名。
import os
# 获取文件名
file_name = os.path.basename('/path/to/file.txt')
print(file_name) # 输出:file.txt
# 获取文件扩展名
file_name, file_extension = os.path.splitext('/path/to/file.txt')
print(file_extension) # 输出:.txt
获取文件的绝对路径
os.path.abspath(path):返回路径的绝对路径。
获取路径的父目录
os.path.dirname(path):返回路径的父目录。
3. 文件权限和修改时间
获取文件或目录的权限
os.stat(path):返回一个os.stat_result对象,包含文件的权限、大小、最后修改时间等信息。
import os
# 获取文件或目录的权限
file_stat = os.stat('file.txt')
print(file_stat.st_mode) # 输出文件的权限信息(权限为十进制数字)
修改文件权限
os.chmod(path, mode):改变文件或目录的权限,mode是一个权限值。
获取文件或目录的最后修改时间
os.path.getmtime(path):返回文件的最后修改时间,结果为 Unix 时间戳。
修改文件的访问时间或修改时间
os.utime(path, times):修改文件的访问和修改时间。
4. 环境变量操作
获取环境变量
os.getenv('VAR_NAME'):获取指定环境变量的值。
设置环境变量
os.environ['VAR_NAME'] = 'value':设置环境变量。
删除环境变量
os.environ.pop('VAR_NAME'):删除环境变量。
5. 系统信息与进程操作
获取操作系统类型
os.name:获取当前操作系统的类型。
获取操作系统的详细信息
os.uname():返回一个包含操作系统详细信息的元组(仅限类 Unix 系统)。
执行外部命令
os.system(command):执行系统命令。
启动新进程
os.spawn():用于启动新进程(更底层的方法)。
6. 进程管理
获取当前进程的 ID
os.getpid():返回当前进程的 ID。
获取父进程的 ID
os.getppid():返回父进程的 ID。
总结
os 模块提供了丰富的函数来处理文件系统、环境变量、路径操作和进程管理。常用的操作包括文件和目录的创建、删除、重命名,路径处理,权限修改以及与操作系统的交互等。掌握 os 模块是进行系统编程、文件管理和自动化任务的重要步骤。