1 需求
2 接口
3 示例
4 参考资料
在 Python 中,os
(Operating System)模块是一个非常重要的内置标准库,提供了许多与操作系统进行交互的函数和方法,允许开发者在 Python 程序中执行常见的操作系统任务,像文件和目录操作、进程管理、环境变量访问等 。以下是os
模块的详细介绍:
1. 文件操作相关
os.open()
- 功能:以指定模式打开文件,返回文件描述符(一个小整数)。相比内置的
open()
函数,os.open()
更接近系统底层操作。 - 示例:
- 功能:以指定模式打开文件,返回文件描述符(一个小整数)。相比内置的
import os
fd = os.open('test.txt', os.O_RDWR | os.O_CREAT)
os.write(fd, b'This is a test.')
os.close(fd)
os.remove()
或os.unlink()
- 功能:删除指定路径的文件。如果文件不存在,会抛出
FileNotFoundError
异常。 - 示例:
- 功能:删除指定路径的文件。如果文件不存在,会抛出
import os
try:os.remove('test.txt')
except FileNotFoundError:print("文件不存在")
os.rename()
- 功能:重命名文件或目录。如果目标路径已存在,会抛出
FileExistsError
异常。 - 示例:
- 功能:重命名文件或目录。如果目标路径已存在,会抛出
import os
os.rename('old_name.txt', 'new_name.txt')
2. 目录操作相关
os.mkdir()
- 功能:创建一个新目录。如果目录已经存在,会抛出
FileExistsError
异常。 - 示例:
- 功能:创建一个新目录。如果目录已经存在,会抛出
import os
try:os.mkdir('new_directory')
except FileExistsError:print("目录已存在")
os.rmdir()
- 功能:删除指定的空目录。如果目录不为空或者不存在,会抛出相应的异常。
- 示例:
import os
try:os.rmdir('new_directory')
except FileNotFoundError:print("目录不存在")
except OSError:print("目录非空,无法删除")
os.listdir()
- 功能:返回指定目录下的所有文件和目录名,以列表形式呈现。
- 示例:
import os
files = os.listdir('.') # '.' 表示当前目录
for file in files:print(file)
os.chdir()
- 功能:改变当前工作目录到指定路径。
- 示例:
import os
os.chdir('/new/directory/path')
os.walk()
- 功能:递归遍历目录树,返回一个三元组
(dirpath, dirnames, filenames)
,分别表示当前目录路径、当前目录下的子目录名列表、当前目录下的文件名列表。 - 示例:
- 功能:递归遍历目录树,返回一个三元组
import os
for dirpath, dirnames, filenames in os.walk('.'):print(f"当前目录: {dirpath}")print(f"子目录: {dirnames}")print(f"文件: {filenames}")
3. 进程管理相关
os.system()
- 功能:在子 shell 中执行指定的命令,并返回命令的退出状态码。该方法简单易用,但无法获取命令的输出内容。
- 示例:
import os
return_code = os.system('ls -l')
print(f"命令执行的返回码: {return_code}")
os.popen()
- 功能:在子 shell 中执行命令,返回一个文件对象,可以通过该对象读取命令的输出内容。
- 示例:
import os
result = os.popen('ls -l').read()
print(result)
os.fork()
(仅限 Unix/Linux 系统)- 功能:创建一个子进程,父进程和子进程从
os.fork()
调用点开始分别执行不同的代码分支。父进程返回子进程的进程 ID,子进程返回 0。 - 示例:
- 功能:创建一个子进程,父进程和子进程从
import os
pid = os.fork()
if pid == 0:print("我是子进程")
else:print(f"我是父进程,子进程ID是 {pid}")
4. 环境变量相关
os.environ
- 功能:一个包含系统环境变量的字典,可以通过键值对的方式访问和修改环境变量。
- 示例:
import os
print(os.environ.get('PATH')) # 获取PATH环境变量
os.environ['NEW_VARIABLE'] = 'value' # 设置新的环境变量
5. 其他常用功能
os.getpid()
- 功能:返回当前进程的 ID。
- 示例:
import os
print(f"当前进程ID: {os.getpid()}")
os.name
- 功能:返回当前使用的操作系统名称。在 Unix/Linux 系统上返回
'posix'
,在 Windows 系统上返回'nt'
。 - 示例:
- 功能:返回当前使用的操作系统名称。在 Unix/Linux 系统上返回
import os
print(f"当前操作系统名称: {os.name}")
os
模块是 Python 进行操作系统层面交互的重要工具,能帮助开发者实现跨平台的系统操作,提升程序的实用性和灵活性。