Python os库完全指南:文件操作必备

一、简介

        Python 的 os 库。这个库主要用于和操作系统交互,比如管理文件、目录、运行系统命令等。

二、导入库

import os

三、基础操作

获取当前工作目录
current_dir = os.getcwd()
print("当前目录:", current_dir)
切换目录
os.chdir("/path/to/new/directory")
列出目录内容
files = os.listdir()  # 不传参数则默认当前目录
print("目录内容:", files)

四、文件/目录操作

创建目录
os.mkdir("new_folder")  # 创建单个目录
os.makedirs("parent/child/grandchild")  # 创建多级目录
删除文件或目录
os.remove("file.txt")  # 删除文件
os.rmdir("empty_folder")  # 删除空目录
os.removedirs("parent/child")  # 删除多级空目录
重命名文件/目录
os.rename("old.txt", "new.txt")

五、 路径操作(重要!)

使用 os.path 子模块处理路径问题(跨平台兼容):

拼接路径
path = os.path.join("folder", "subfolder", "file.txt")
print("路径:", path)  # 输出:folder/subfolder/file.txt(Linux/Mac)或 folder\\subfolder\\file.txt(Windows)
获取路径信息
full_path = "/home/user/docs/file.txt"
print("目录部分:", os.path.dirname(full_path))  # /home/user/docs
print("文件名部分:", os.path.basename(full_path))  # file.txt
print("是否绝对路径?", os.path.isabs(full_path))  # True
检查文件/目录是否存在
if os.path.exists("some_file.txt"):
    print("文件存在!")
if os.path.isdir("some_folder"):
    print("这是一个目录")
if os.path.isfile("some_file.txt"):
    print("这是一个文件")

六、运行系统命令

os.system("ls -l")  # 在Linux/Mac下列出目录内容
os.system("dir")    # 在Windows下列出目录内容

⚠️ 注意:os.system 的输出直接打印到控制台,不易获取返回值。更高级的用法可以用 subprocess 库。

七、环境变量

# 获取环境变量
home_dir = os.environ.get("HOME")
print("用户家目录:", home_dir)

# 设置临时环境变量(仅在当前进程有效)
os.environ["MY_VAR"] = "123"

八、其他实用功能

遍历目录树
for root, dirs, files in os.walk("."):
    print(f"当前目录:{root}")
    print(f"子目录:{dirs}")
    print(f"文件:{files}")

获取文件大小/修改时间

size = os.path.getsize("file.txt")  # 字节数
mtime = os.path.getmtime("file.txt")  # 修改时间的时间戳

九、常用函数

目录操作
函数 作用 示例
os.getcwd() 获取当前工作目录 print(os.getcwd())
os.chdir(path) 切换当前工作目录 os.chdir("../desktop")
os.listdir(path) 列出目录内容(返回列表) files = os.listdir('.')
os.mkdir(path) 创建单层目录 os.mkdir("new_folder")
os.makedirs(path) 递归创建多层目录 os.makedirs("a/b/c")
os.rmdir(path) 删除空目录 os.rmdir("empty_folder")
os.removedirs(path) 递归删除空目录 os.removedirs("a/b/c")

文件操作
函数 作用 示例
os.rename(old, new) 重命名文件/目录 os.rename("old.txt", "new.txt")
os.remove(path) 删除文件 os.remove("temp.txt")

路径处理 (os.path 子模块)
函数 作用 示例
os.path.join(a, b, ...) 跨平台拼接路径 os.path.join("dir", "file.txt") → dir/file.txt(Linux)或 dir\file.txt(Windows)
os.path.abspath(path) 将路径转为绝对路径 os.path.abspath("file.txt") → /home/user/file.txt
os.path.dirname(path) 获取路径中的目录部分 os.path.dirname("/a/b/c.txt") → /a/b
os.path.basename(path) 获取路径中的文件名部分 os.path.basename("/a/b/c.txt") → c.txt
os.path.split(path) 分割目录和文件名 dir, file = os.path.split("/a/b/c.txt") → dir="/a/b", file="c.txt"
os.path.splitext(path) 分割文件名和扩展名 name, ext = os.path.splitext("file.txt") → name="file", ext=".txt"

文件/目录检查 (os.path)
函数 作用 示例
os.path.exists(path) 路径是否存在 if os.path.exists("file.txt"): ...
os.path.isfile(path) 是否是文件 if os.path.isfile("file.txt"): ...
os.path.isdir(path) 是否是目录 if os.path.isdir("folder"): ...
os.path.isabs(path) 是否是绝对路径 print(os.path.isabs("../file.txt")) → False

文件信息获取 (os.path)
函数 作用 示例
os.path.getsize(path) 获取文件大小(字节) size = os.path.getsize("file.txt")
os.path.getmtime(path) 获取最后修改时间(时间戳) mtime = os.path.getmtime("file.txt")

系统相关
函数 作用 示例
os.system(command) 执行系统命令 os.system("echo Hello")
os.environ 获取系统环境变量(字典) print(os.environ["PATH"])
os.name 操作系统类型 print(os.name) → 'posix'(Linux/Mac)或 'nt'(Windows)

高级遍历 (os.walk)
函数 作用 示例
os.walk(top) 递归遍历目录树 python
for root, dirs, files in os.walk("."):
print(f"当前目录: {root}")
print(f"子目录: {dirs}")
print(f"文件: {files}")

十、注意事项

  1. 删除操作要谨慎os.remove() 和 os.rmdir() 不可逆!

  2. 跨平台路径:用 os.path.join() 代替手动拼接路径(避免 "folder\\file" 这样的硬编码)。

  3. 检查存在性:操作文件/目录前,先用 os.path.exists() 检查是否存在。

你可能感兴趣的:(Python启航之路,python,开发语言)