python的os模块
os模块是 Python 中非常重要的标准库,用来与操作系统进行交互。它提供了很多操作文件、目录、进程、环境变量等的功能。
文件和目录操作
获取当前目录和切换目录
import os
# 获取当前工作目录
current_dir = os.getcwd()
print(f"当前目录: {current_dir}")
# 切换目录
os.chdir("C:\\Users") # Windows
os.chdir("/home/user") # Linux/Mac
# 列出目录内容
files = os.listdir(".")
print(f"当前目录内容: {files}")
创建和删除目录
# 创建单个目录
os.mkdir("new_folder")
# 创建多级目录
os.makedirs("folder1/folder2/folder3", exist_ok=True)
# 删除目录
os.rmdir("new_folder") # 只能删除空目录
# 删除多级目录
import shutil
shutil.rmtree("folder1") # 需要 shutil 模块
文件/目录信息
# 检查文件/目录是否存在
if os.path.exists("myfile.txt"):
print("文件存在")
# 检查是否是文件
os.path.isfile("myfile.txt")
# 检查是否是目录
os.path.isdir("myfolder")
# 获取文件大小(字节)
size = os.path.getsize("myfile.txt")
print(f"文件大小: {size} 字节")
# 获取最后修改时间
import time
mtime = os.path.getmtime("myfile.txt")
print(f"最后修改: {time.ctime(mtime)}")
路径操作(常用!)
import os
path = "/home/user/documents/report.txt"
# 获取文件名
filename = os.path.basename(path) # "report.txt"
# 获取目录名
dirname = os.path.dirname(path) # "/home/user/documents"
# 路径分割
dirname, basename = os.path.split(path)
print(f"目录: {dirname}, 文件名: {basename}")
# 文件扩展名分割
name, ext = os.path.splitext("report.txt")
print(f"文件名: {name}, 扩展名: {ext}") # "report", ".txt"
# 路径拼接(推荐使用这种方式!)
full_path = os.path.join("folder", "subfolder", "file.txt")
# Windows: "folder\\subfolder\\file.txt"
# Linux/Mac: "folder/subfolder/file.txt"
文件操作
# 重命名文件/目录
os.rename("old.txt", "new.txt")
# 删除文件
os.remove("file.txt")
# 创建空文件
open("newfile.txt", "w").close()
# 复制文件(需要 shutil 模块)
import shutil
shutil.copy("source.txt", "dest.txt")
系统信息
# 获取操作系统名称
print(os.name) # 'posix'(Linux/Mac) 或 'nt'(Windows)
# 获取环境变量
home_dir = os.environ.get("HOME") # Linux/Mac
# 或
home_dir = os.environ.get("USERPROFILE") # Windows
print(f"家目录: {home_dir}")
# 获取所有环境变量
for key, value in os.environ.items():
print(f"{key}: {value}")
# 设置环境变量(仅当前进程有效)
os.environ["MY_VAR"] = "my_value"
进程管理
# 执行系统命令
result = os.system("ls -l") # Linux/Mac
result = os.system("dir") # Windows
# 获取命令输出
output = os.popen("date").read()
print(f"当前时间: {output}")
# 启动新程序
os.startfile("document.pdf") # Windows
# Linux: os.system("xdg-open document.pdf")

浙公网安备 33010602011771号