Python 标准库之 os 模块

Python 的os模块提供了与操作系统进行交互的功能。这个模块让你可以使用操作系统相关的功能,而不需要担心具体的操作系统类型(如 Windows、Linux 或 macOS)。以下是os模块中一些核心功能的介绍:

1. 文件与目录操作

目录管理
  • os.getcwd(): 返回当前工作目录。
  • os.chdir(path): 改变当前工作目录。
  • os.listdir(path='.'): 返回指定目录下的所有文件和文件夹。
  • os.mkdir(path): 创建单层目录。若目录已存在,会抛出FileExistsError
  • os.makedirs(path, exist_ok=False): 递归创建多层目录。exist_ok=True时若目录已存在不报错。
  • os.rmdir(path): 删除空目录。
  • os.removedirs(path): 递归删除空目录(从子目录开始)。
文件操作
  • os.remove(path)/os.unlink(path): 删除文件。
  • os.rename(src, dst): 重命名文件或目录。
  • os.replace(src, dst): 重命名文件或目录,若目标已存在则强制覆盖。
路径处理
  • os.path.join(path, *paths): 智能拼接路径(自动处理分隔符)。
  • os.path.split(path): 将路径拆分为(目录, 文件名)元组。
  • os.path.dirname(path): 返回路径中的目录部分。
  • os.path.basename(path): 返回路径中的文件名部分。
  • os.path.exists(path): 检查路径是否存在(文件或目录)。
  • os.path.isfile(path)/os.path.isdir(path): 判断路径是文件还是目录。
  • os.path.getsize(path): 返回文件大小(字节)。
  • os.path.getmtime(path): 返回文件的最后修改时间(时间戳)。

2. 进程与环境

进程管理
  • os.system(command): 执行系统命令(返回状态码)。
  • os.spawn*(): 更高级的进程创建函数(如os.spawnlp())。
  • os.kill(pid, signal): 发送信号给进程(如终止进程)。
环境变量
  • os.environ: 获取当前环境变量(字典形式)。
  • os.getenv(key, default=None): 获取指定环境变量的值。
  • os.putenv(key, value): 设置环境变量(部分系统支持,建议用os.environ)。

3. 权限与模式

  • os.access(path, mode): 检查权限(如os.R_OK读权限、os.W_OK写权限)。
  • os.chmod(path, mode): 更改文件或目录的权限(如0o755)。
  • os.chown(path, uid, gid): 更改文件所有者(需要管理员权限)。

4. 跨平台特性

  • os.name: 返回操作系统类型('posix''nt'等)。
  • os.sep: 返回路径分隔符('/''\\')。
  • os.linesep: 返回行结束符('\n''\r\n'等)。

示例代码

以下是一些常见操作的示例:

python

import os

# 获取当前目录
current_dir = os.getcwd()
print(f"当前目录: {current_dir}")

# 列出目录内容
print("\n目录内容:")
for item in os.listdir(current_dir):
    print(item)

# 创建目录
new_dir = "test_dir"
if not os.path.exists(new_dir):
    os.mkdir(new_dir)
    print(f"\n创建目录: {new_dir}")

# 拼接路径并创建文件
file_path = os.path.join(new_dir, "test.txt")
with open(file_path, "w") as f:
    f.write("Hello, OS module!")
print(f"创建文件: {file_path}")

# 获取文件信息
file_size = os.path.getsize(file_path)
mod_time = os.path.getmtime(file_path)
print(f"文件大小: {file_size} 字节")
print(f"最后修改时间: {mod_time}")

# 删除文件和目录
os.remove(file_path)
os.rmdir(new_dir)
print("\n已删除文件和目录")

注意事项

  1. 路径处理:始终使用os.path.join()拼接路径,避免硬编码分隔符。
  2. 异常处理:文件操作可能抛出FileNotFoundErrorPermissionError等,建议使用try-except
  3. 替代模块:对于更高级的文件操作,可使用pathlib模块(Python 3.4+)替代部分os.path功能。

os模块是 Python 标准库中最常用的模块之一,掌握它可以让你更高效地处理文件系统和系统级操作。

你可能感兴趣的:(Python,进阶应用教程,python,开发语言)