Skip to content
 
📑标签
🏷python 🏷os 🏷文件操作

🗒初墨

🍊Hello,各位好,我是面包!

作为Python与操作系统交互的瑞士军刀,os库藏着无数文件管理的秘密武器。本文结合多篇权威资料,为你揭秘这些函数的正确打开方式!

一、目录操控术

os.getcwd()

作用:获取当前工作目录(相当于CMD里的cd命令)

示例:

py
print(os.getcwd())  # 输出:C:\Users\AI小助手\Desktop
os.chdir("D:/Projects")

作用:切换工作目录(像在资源管理器里双击文件夹)

注意:路径要用正斜杠或双反斜杠

py
os.chdir("C:/Windows/System32")  # 切换到系统目录
os.mkdir("new_folder")

作用:创建单个目录(若父目录不存在会报错)

升级版:

py
os.makedirs("parent/child/grandchild")  # 递归创建多级目录

二、文件侦察兵

os.listdir(".")

作用:列出当前目录所有内容(包括文件和文件夹)

高级用法:

py
# 获取所有.py文件
py_files = [f for f in os.listdir() if f.endswith('.py')]
os.path.exists("secret.txt")

作用:检查文件/目录是否存在(防报错神器) 扩展技能:

py
os.path.isfile("data.csv")  # 判断是否是文件
os.path.isdir("Downloads")  # 判断是否是目录
os.stat("movie.mp4")

作用:获取文件元数据(大小、修改时间等) 查看文件大小:

py
size = os.path.getsize("video.mp4")  # 返回字节数

三、路径魔法师

os.path.join("dir", "sub", "file.txt")

作用:智能拼接路径(自动处理不同系统的分隔符) 示例输出:

py
# Windows下输出:dir\sub\file.txt
# Linux下输出:dir/sub/file.txt
os.path.abspath("../../secret.jpg")

作用:获取绝对路径(解决相对路径的混乱问题) 配合技能:

py
os.path.dirname(__file__)  # 获取当前脚本所在目录
os.path.split("/home/user/docs/report.pdf")

作用:分离目录与文件名 输出结果:

py
('/home/user/docs', 'report.pdf')  # (head, tail)元组

四、危险操作区

os.remove("temp.log")

作用:删除文件( irreversible!) 安全提示:

py
if os.path.exists("temp.log"):
    os.remove("temp.log")  # 先检查再删除
os.rmdir("empty_folder")

作用:删除空目录 核弹版:

py
import shutil
shutil.rmtree("folder_with_files")  # 强制删除非空目录

五、跨平台秘籍

os.name

作用:检测操作系统类型 返回值:

py
print(os.name)  # 'nt'表示Windows,'posix'表示Linux/Mac

os.sep

作用:获取系统路径分隔符

示例:

py
# Windows返回'\',Linux返回'/'

🛠️ 实战场景

批量重命名工具(参考 6):

py
import os

folder = "photos"
for filename in os.listdir(folder):
    if filename.endswith(".jpg"):
        new_name = f"vacation_{filename}"
        os.rename(os.path.join(folder, filename),
                  os.path.join(folder, new_name))

文件搜索器(参考 2):

py
def search_file(root, target):
    for item in os.listdir(root):
        path = os.path.join(root, item)
        if os.path.isfile(path) and item == target:
            return path
        elif os.path.isdir(path):
            result = search_file(path, target)
            if result: return result
    return None

💡 避坑指南(参考 4 7):

路径中的反斜杠要写成\或使用原始字符串r"C:\Windows"

os.mkdir创建多级目录会报错,优先使用os.makedirs

删除操作前务必用os.path.exists进行检查

跨平台开发时使用os.path.join代替手动拼接路径

掌握这些函数,你就能像操纵提线木偶一样操控文件和目录!想成为文件管理大师?现在就开始练习吧! 🚀