更新时间:2025-09-22 17:50点击:59
os 模块是 Python 标准库中的一个重要模块,它提供了与操作系统交互的功能。
通过 os 模块,你可以执行文件操作、目录操作、环境变量管理、进程管理等任务。
os 模块是跨平台的,这意味着你可以在不同的操作系统(如 Windows、Linux、macOS)上使用相同的代码。
在使用 os 模块之前,你需要先导入它。导入 os 模块的代码如下:
import os
os.getcwd() 函数用于获取当前工作目录的路径。当前工作目录是 Python 脚本执行时所在的目录。
os.chdir(path) 函数用于改变当前工作目录。path 是你想要切换到的目录路径。
os.listdir(path) 函数用于列出指定目录中的所有文件和子目录。如果不提供 path 参数,则默认列出当前工作目录的内容。
os.mkdir(path) 函数用于创建一个新的目录。如果目录已经存在,会抛出 FileExistsError 异常。
os.rmdir(path) 函数用于删除一个空目录。如果目录不为空,会抛出 OSError 异常。
os.remove(path) 函数用于删除一个文件。如果文件不存在,会抛出 FileNotFoundError 异常。
os.rename(src, dst) 函数用于重命名文件或目录。src 是原始路径,dst 是新的路径。
os.getenv(key) 函数用于获取指定环境变量的值。如果环境变量不存在,返回 None。
os.system(command) 函数用于在操作系统的 shell 中执行命令。命令执行后,返回命令的退出状态。
current_directory = os.getcwd() #1. 获取当前工作目录
print("当前工作目录:", current_directory)
os.chdir("test") #2. 改变当前工作目录
print("新的工作目录:", os.getcwd())
files_and_dirs = os.listdir() #3. 列出目录内容
print("目录内容:", files_and_dirs)
print(str(len(files_and_dirs))+files_and_dirs[0])
os.mkdir("new_directory") #4. 创建目录
os.rmdir("new_directory") #5. 删除目录
with open("file_to_delete.txt",'w') as f:
f.write("test")
os.remove("file_to_delete.txt") #6. 删除文件
with open("old_name.txt",'w') as f:
f.write("test")
os.remove("new_name.txt")
os.rename("old_name.txt", "new_name.txt") #7. 重命名文件或目录
home_directory = os.getenv("HOME") #8. 获取环境变量os.getenv(key) 函数用于获取指定环境变量的值。如果环境变量不存在,返回 None。
print("HOME 目录:", home_directory)
os.system("dir") #9.os.system(command) 函数用于在操作系统的 shell 中执行命令。命令执行后,返回命令的退出状态。
os.access() 方法使用当前的uid/gid尝试访问路径。大部分操作使用有效的 uid/gid, 因此运行环境可以在 suid/sgid 环境尝试。
access()方法语法格式如下:
os.access(path, mode);
path -- 要用来检测是否有访问权限的路径。
mode -- mode为F_OK,测试存在的路径,或者它可以是包含R_OK, W_OK和X_OK或者R_OK, W_OK和X_OK其中之一或者更多。
如果允许访问返回 True , 否则返回False。
以下实例演示了 access() 方法的使用:
import os, sys
# 假定 data.txt 文件存在,并有读写权限
ret = os.access("data.txt", os.F_OK)
print ("F_OK - 返回值 %s"% ret)
ret = os.access("data.txt", os.R_OK)
print ("R_OK - 返回值 %s"% ret)
ret = os.access("data.txt", os.W_OK)
print ("W_OK - 返回值 %s"% ret)
ret = os.access("data.txt", os.X_OK)
print ("X_OK - 返回值 %s"% ret)
执行以上程序输出结果为:
F_OK - 返回值 True R_OK - 返回值 True W_OK - 返回值 True X_OK - 返回值 False
os.replace() 方法用于重命名文件或目录。
Python3.3 版中的新功能。
replace()方法语法格式如下:
os.replace(src, dst, *, src_dir_fd=None, dst_dir_fd=None)
将文件或目录 src 重命名为 dst,如果 dst 是非空目录,则会引发 OSError。 如果 dst 存在并且是一个文件,如果用户有权限,它将被替换。
src -- 源文件或目录,如果该目录文件不存在会引发错误 FileNotFoundError。
dst -- 重命名后的文件或目录,如果已存在,会直接替换。
src_dir_fd -- 相对目录描述符的路径。
dst_dir_fd -- 相对目录描述符的路径。
如果执行成功,重命名将是一个原子操作(这是 POSIX 要求),失败返回 OSError。
以下实例演示了 replace() 方法的使用:
文本 google.txt 内容为:
google执行只剩下一个 runoob.txt,内容为:
google
如果替换后的文件 dst 是已存在的,会替换:
文本 test1.txt 内容为:
google
文本 test2.txt 内容为:
runnob执行只剩下一个 test2.txt,内容为:
google