Python的 os库是一个标准的操作系统接口,它提供了与操作系统进行交互的多种方法,如文件操作、目录操作、权限控制、进程管理等。通过 os库,Python程序可以实现对底层操作系统的访问和控制。下面将详细介绍 os库的常用操作和对应实例,逐步分析每个命令的用法及其原理。

一、os库的常用操作汇总

操作类别 常用方法/函数 功能描述
文件与目录操作 os.getcwd() 获取当前工作目录
文件与目录操作 os.chdir(path) 改变当前工作目录
文件与目录操作 os.listdir(path) 列出指定目录下的文件和目录
文件与目录操作 os.mkdir(path) 创建目录
文件与目录操作 os.makedirs(path) 递归创建多级目录
文件与目录操作 os.rmdir(path) 删除目录
文件与目录操作 os.remove(path) 删除文件
文件与目录操作 os.rename(src, dst) 重命名文件或目录
文件与目录操作 os.path.exists(path) 检查文件或目录是否存在
文件与目录操作 os.path.isfile(path) 判断是否为文件
文件与目录操作 os.path.isdir(path) 判断是否为目录
进程管理 os.system(command) 执行系统命令
环境变量操作 os.getenv(key) 获取环境变量值
环境变量操作 os.putenv(key, value) 设置环境变量
文件权限与属性管理 os.chmod(path, mode) 修改文件权限
文件权限与属性管理 os.stat(path) 获取文件属性
文件路径操作 os.path.join(path, *paths) 连接路径
文件路径操作 os.path.abspath(path) 获取文件的绝对路径
文件路径操作 os.path.split(path) 拆分文件路径,返回路径和文件名
文件路径操作 os.path.splitext(path) 拆分文件路径,返回路径和扩展名

二、os库常用操作详解

1. 获取当前工作目录:os.getcwd()

import os

current_directory = os.getcwd()
print(f"当前工作目录是:{current_directory}")

解释:
os.getcwd() 用于获取当前工作目录,返回的是一个字符串,表示当前正在运行的脚本所在的目录。这个函数在文件路径操作中非常常用。

2. 改变工作目录:os.chdir(path)

os.chdir('/path/to/directory')
print(f"工作目录已经更改为:{os.getcwd()}")

解释:
os.chdir(path) 用于改变当前工作目录到指定的路径。路径可以是绝对路径,也可以是相对路径。通常用于需要在不同目录间切换的场景。

3. 列出指定目录下的文件和目录:os.listdir(path)

files_and_dirs = os.listdir('/path/to/directory')
print(f"目录内容:{files_and_dirs}")

解释:
os.listdir(path) 返回指定目录下的所有文件和目录名称,结果是一个列表形式。如果不提供路径,则默认列出当前工作目录的内容。

4. 创建目录:os.mkdir(path)

os.mkdir('/path/to/new_directory')
print("目录创建成功")

解释:
os.mkdir(path) 用于创建一个单级目录。如果目录已经存在,会抛出 FileExistsError 错误。如果需要创建多级目录,请使用 os.makedirs()。

5. 删除目录:os.rmdir(path)

os.rmdir('/path/to/new_directory')
print("目录删除成功")

解释:
os.rmdir(path) 删除指定路径的目录,但前提是该目录必须是空的。如果目录中包含文件或其他子目录,会抛出 OSError 错误。

6. 删除文件:os.remove(path)

os.remove('/path/to/file.txt')
print("文件删除成功")

解释:
os.remove(path) 用于删除指定路径的文件,删除目录时会报错。

7. 重命名文件或目录:os.rename(src, dst)

os.rename('/path/to/file.txt', '/path/to/new_file.txt')
print("文件重命名成功")

解释:
os.rename(src, dst) 用于重命名文件或目录。如果目标文件已存在,可能会覆盖它,因此使用时要注意目标文件的状态。

8. 检查文件或目录是否存在:os.path.exists(path)

if os.path.exists('/path/to/file.txt'):
    print("文件存在")
else:
    print("文件不存在")

解释:
os.path.exists(path) 返回一个布尔值,判断给定路径是否存在。无论是文件还是目录,只要存在该路径,函数就返回 True。

9. 判断是否为文件:os.path.isfile(path)

if os.path.isfile('/path/to/file.txt'):
    print("这是一个文件")
else:
    print("这不是一个文件")

解释:
os.path.isfile(path) 判断路径是否指向一个文件,返回 True 或 False。

10. 判断是否为目录:os.path.isdir(path)

if os.path.isdir('/path/to/directory'):
    print("这是一个目录")
else:
    print("这不是一个目录")

解释:
os.path.isdir(path) 用于判断路径是否指向一个目录,返回值同样为 True 或 False。

11. 执行系统命令:os.system(command)

os.system('ls -la')

解释:
os.system(command) 直接调用系统的shell来执行命令。在Unix系统中,这个命令会执行shell命令;在Windows中,它会执行cmd命令。返回的值是命令执行的返回码(通常为0表示成功,非0表示失败)。

12. 获取环境变量:os.getenv(key)

path_variable = os.getenv('PATH')
print(f"环境变量PATH的值为:{path_variable}")

解释:
os.getenv(key) 用于获取系统的环境变量值。如果指定的环境变量不存在,则返回 None。

13. 修改文件权限:os.chmod(path, mode)

os.chmod('/path/to/file.txt', 0o777)
print("文件权限修改成功")

解释:
os.chmod(path, mode) 用于更改文件或目录的权限。mode 是一个八进制数,如 0o777 表示读写执行权限。

14. 获取文件属性:os.stat(path)

file_stat = os.stat('/path/to/file.txt')
print(f"文件大小为:{file_stat.st_size} 字节")

解释:
os.stat(path) 返回一个包含文件属性的对象,包含文件大小、创建时间、修改时间等信息。属性名如 st_size 表示文件大小,st_mtime 表示最后修改时间等。

15. 文件路径拼接:os.path.join(path, *paths)

full_path = os.path.join('/path', 'to', 'file.txt')
print(f"完整路径为:{full_path}")

解释:
os.path.join(path, *paths) 用于智能地拼接路径,能够根据操作系统自动调整路径分隔符。

16. 获取文件的绝对路径:os.path.abspath(path)

absolute_path = os.path.abspath('file.txt')
print(f"文件的绝对路径为:{absolute_path}")

解释:
os.path.abspath(path) 返回给定路径的绝对路径,常用于确定文件的完整路径。

17. 拆分文件路径和文件名:os.path.split(path)

directory, filename = os.path.split('/path/to/file.txt')
print(f"目录为:{directory}, 文件名为:{filename}")

解释:
os.path.split(path) 将路径分为目录和文件名两部分,返回一个元组 (directory, filename)。

18. 获取文件扩展名:os.path.splitext(path)

filename, file_extension = os.path.splitext('/path/to/file.txt')
print(f"文件名为:{filename

}, 扩展名为:{file_extension}")

解释:
os.path.splitext(path) 拆分路径和扩展名,返回文件名和扩展名的元组。常用于判断文件类型或执行文件扩展名相关的操作。

三、总结

Python 的 os 库提供了丰富的与操作系统交互的功能,涵盖文件操作、目录操作、路径操作、权限控制以及系统命令执行等。在日常开发中,掌握这些基础的 os 方法,能够有效提高开发效率,且可以处理多种系统级别的任务。

本次介绍的 os库操作通过实例演示和解释,涵盖了文件和目录操作、进程管理、环境变量操作、权限管理等多个重要功能。合理运用这些功能,可以使Python脚本轻松与操作系统进行深度交互。