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")
posted @ 2026-04-29 11:35  MKYC  阅读(2)  评论(0)    收藏  举报