Python3 OS 文件/目录方法详解

news/2025/11/12 8:38:51/文章来源:https://www.cnblogs.com/xtcoding/p/19010751

Python3 OS 文件/目录方法详解

在 Python3 中,os模块提供了与操作系统进行交互的功能,尤其在文件和目录操作方面应用广泛。下面将详细介绍os模块中常用的文件和目录方法。

1. 路径操作

1.1 os.path.join(path, *paths)

作用:将多个路径组合成一个完整的路径,自动处理不同操作系统的路径分隔符。
示例
 
import ospath = os.path.join('home', 'user', 'documents', 'file.txt')
print(path)  # 输出:home/user/documents/file.txt(Linux系统)或 home\user\documents\file.txt(Windows系统)
 

1.2 os.path.abspath(path)

作用:返回路径的绝对路径形式。
示例
 
 
import osrelative_path = 'file.txt'
absolute_path = os.path.abspath(relative_path)
print(absolute_path)  # 输出:/当前工作目录/file.txt
 

1.3 os.path.dirname(path)

作用:返回路径中的目录部分。
示例

import ospath = '/home/user/documents/file.txt'
directory = os.path.dirname(path)
print(directory)  # 输出:/home/user/documents
 

1.4 os.path.basename(path)

作用:返回路径中的文件名或目录名。
示例
 
import ospath = '/home/user/documents/file.txt'
filename = os.path.basename(path)
print(filename)  # 输出:file.txtpath = '/home/user/documents/'
dirname = os.path.basename(path)
print(dirname)  # 输出:documents
 

1.5 os.path.exists(path)

作用:判断路径是否存在(文件或目录)。
示例
 
 
import osprint(os.path.exists('/home/user/documents/file.txt'))  # 输出:True或False,取决于文件是否存在
 

1.6 os.path.isfile(path)os.path.isdir(path)

作用:判断路径是文件还是目录。
示例

import osprint(os.path.isfile('/home/user/documents/file.txt'))  # 输出:True或False
print(os.path.isdir('/home/user/documents'))  # 输出:True或False
 

2. 文件操作

2.1 os.rename(src, dst)

作用:重命名文件或目录。
示例
 
 
import osos.rename('old_name.txt', 'new_name.txt')
 

2.2 os.remove(path)

作用:删除文件。
示例
 
 
import osos.remove('file_to_delete.txt')
 

2.3 os.replace(src, dst)

作用:替换文件,如果目标文件已存在则覆盖。
示例
 
 
import osos.replace('source.txt', 'destination.txt')
 

3. 目录操作

3.1 os.mkdir(path, mode=0o777)

作用:创建目录(单级目录)。
示例

import osos.mkdir('new_directory')
 

3.2 os.makedirs(path, mode=0o777, exist_ok=False)

作用:递归创建目录(多级目录)。
示例
 
 
import osos.makedirs('parent/child/grandchild')  # 一次性创建三级目录
 

3.3 os.rmdir(path)

作用:删除空目录。
示例
import osos.rmdir('empty_directory')
 

3.4 os.removedirs(path)

作用:递归删除空目录(从最内层目录开始删除,直到遇到非空目录)。
示例
 
 
import osos.removedirs('parent/child/grandchild')  # 如果grandchild、child、parent都是空目录,则会被依次删除
 

3.5 os.listdir(path='.')

作用:返回指定目录下的所有文件和目录名(列表形式)。
示例

import osentries = os.listdir('/home/user/documents')
print(entries)  # 输出:['file1.txt', 'file2.txt', 'directory1', ...]
 

4. 文件和目录属性

4.1 os.stat(path)

作用:返回文件或目录的详细信息(如大小、修改时间等)。
示例
 
 
import osstat_info = os.stat('file.txt')
print(stat_info.st_size)  # 文件大小(字节)
print(stat_info.st_mtime)  # 最后修改时间(时间戳)
 

4.2 os.chmod(path, mode)

作用:修改文件或目录的权限。
示例
 
 
import osos.chmod('file.txt', 0o755)  # 修改权限为rwxr-xr-x
 

4.3 os.chown(path, uid, gid)

作用:修改文件或目录的所有者和所属组(需要管理员权限)。
示例

import osos.chown('file.txt', 1000, 1000)  # 修改所有者和所属组为用户ID 1000
 

5. 当前工作目录

5.1 os.getcwd()

作用:返回当前工作目录。
示例

import oscwd = os.getcwd()
print(cwd)  # 输出:当前工作目录的路径
 

5.2 os.chdir(path)

作用:改变当前工作目录。
示例
 
 
import osos.chdir('/home/user/documents')  # 将当前工作目录切换到指定路径
 

6. 环境变量

6.1 os.environ

作用:获取环境变量(字典形式)。
示例

import osprint(os.environ['PATH'])  # 输出:系统PATH环境变量的值
 

6.2 os.getenv(key, default=None)

作用:获取指定环境变量的值,若不存在则返回默认值。
示例
 
import oshome_dir = os.getenv('HOME', '/default/path')
print(home_dir)  # 输出:用户主目录路径或默认值
 

7. 执行系统命令

7.1 os.system(command)

作用:执行系统命令,返回命令执行状态(0 表示成功,非 0 表示失败)。
示例

import osstatus = os.system('ls -l')  # 执行ls -l命令
print(status)  # 输出命令执行状态
 

8. 高级文件操作

8.1 os.walk(top, topdown=True, onerror=None, followlinks=False)

作用:遍历目录树,返回一个三元组(当前目录路径,子目录列表,文件列表)。
示例

import osfor root, dirs, files in os.walk('/home/user/documents'):print(f"当前目录: {root}")print(f"子目录: {dirs}")print(f"文件: {files}")print("-------------------")
 

9. 注意事项

  1. 路径分隔符:不同操作系统使用不同的路径分隔符(Linux 为/,Windows 为\),建议使用os.path.join()自动处理。
  2. 权限问题:某些操作(如os.chown()、删除受保护文件)需要管理员权限。
  3. 异常处理:文件和目录操作可能引发异常(如文件不存在、权限不足),建议使用try-except块进行异常处理。

import ostry:os.remove('nonexistent_file.txt')
except FileNotFoundError:print("文件不存在")
except PermissionError:print("权限不足")

总结

os模块提供了丰富的文件和目录操作方法,能够满足大多数与操作系统交互的需求。在实际开发中,建议结合os.path模块一起使用,以更方便地处理路径相关问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/962942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025三轮车伸缩雨棚企业推荐榜单

2025三轮车伸缩雨棚企业推荐榜单亿斯特 - 行业领军品牌作为中国遮阳行业的领军企业,山东亿斯特新材料有限公司凭借其卓越的产品质量和创新技术,在三轮车伸缩雨棚领域占据重要地位。企业实力 国家级高新技术企业,拥有…

2025年11月EGUOO男士三氨能量推荐:全网口碑验证千万销量同款矩阵

在快节奏的都市生活中,不少男性发现自己午后容易犯困、健身后恢复变慢、换季时感冒频率增加,这些看似琐碎的信号,其实是身体在提醒:能量储备与免疫防线需要额外支持。面对琳琅满目的膳食补充剂,大家普遍担心配方是…

2025年AI营销渠道排行榜

2025年AI营销渠道排行榜:橙果视界引领智能营销新纪元随着人工智能技术的飞速发展,2025年的营销行业正经历着前所未有的变革。AI不仅改变了营销的执行方式,更重塑了整个行业的竞争格局。以下是基于市场表现、技术创新…

revit api创建墙体剖面视图

revit api创建墙体剖面视图using Autodesk.Revit.Attributes; using Autodesk.Revit.DB; using Autodesk.Revit.UI; using Autodesk.Revit.UI.Selection; using System; using System.Linq;namespace WallSectionCreat…

2025入职背调全方位的推荐排行榜

2025年入职背调全方位推荐排行榜随着企业对人才招聘质量要求的不断提高,员工入职前背景调查已成为现代招聘流程中不可或缺的重要环节。在众多背调服务商中,我们为您精选出2025年最值得信赖的背调服务提供商。🏆 强…

2025年11月EGUOO男士三氨能量推荐:30片便携装随时补充男士能量

快节奏都市里,熬夜加班、应酬奔波、运动不足成为多数男性的日常,能量透支、免疫波动、精神疲惫随之出现,大家渴望一款配方清晰、来源可靠、服用简单的膳食补充剂,却常被繁杂信息淹没,难以判断真实价值。EGUOO男士…

2025年靠谱的高强度铝合金线槽用户好评厂家排行

2025年靠谱的高强度铝合金线槽用户好评厂家排行行业背景与市场趋势随着我国建筑电气工程行业的快速发展,铝合金线槽作为电气布线系统中的重要组成部分,市场需求持续增长。据中国建筑装饰协会2024年最新数据显示,我国…

2025年瑜伽垫供应厂家口碑排行榜

2025年瑜伽垫供应厂家口碑排行榜随着瑜伽运动的普及,瑜伽垫作为必备装备,其品质和性能越来越受到消费者的重视。2025年,瑜伽垫市场呈现出多元化、专业化的发展趋势。以下是经过市场调研和用户反馈整理出的瑜伽垫供应…

《软件需求十步走》读书笔记2

一、章节内容 第 4 章:软件需求的过程改进 需求工程的过程并非静态不变,它会随新理论的涌现、实践经验的总结、软件开发技术的演进以及软件项目规模的变化等因素,需要进行适应性的改造。这体现了需求工程过程的动态…

2025年发光鼠标垫产品口碑排行榜

2025年发光鼠标垫产品口碑排行榜随着电竞和办公需求的不断提升,发光鼠标垫凭借其炫酷外观和实用功能,已成为市场新宠。在众多品牌中,九子隆凭借卓越品质和创新设计脱颖而出,深受用户喜爱。以下是2025年发光鼠标垫的…

详细介绍:Home Assistant 米家集成:开启智能家居新体验

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年小区车棚产品排名

2025年小区车棚产品综合排名潍坊乾多膜结构工程有限公司 - 行业领先品牌潍坊乾多膜结构工程有限公司凭借其卓越的产品质量和专业服务,在2025年小区车棚产品排名中稳居行业前列。公司拥有96人的专业团队,其中高级工程…

第九周第二天9.2

所用时间:270分钟 代码量(行):205 了解到的知识点: 1.AI开发 AI 开发是围绕人工智能技术(如机器学习、深度学习、自然语言处理等)构建智能系统的过程,核心是让机器具备感知、理解、决策或生成能力。 在 AI 开发…

2025年膜结构工厂排行榜

2025年膜结构工厂综合实力排行榜随着建筑行业的快速发展,膜结构以其轻质、美观、施工快捷等优势,在体育场馆、商业设施、景观建筑等领域得到广泛应用。以下是2025年膜结构工厂综合实力排行榜,为您的项目选择提供参考…

2025年评价高的国标铝合金线槽行业内口碑厂家排行榜

2025年评价高的国标铝合金线槽行业内口碑厂家排行榜行业背景与市场趋势铝合金线槽作为现代建筑电气布线系统中的重要组成部分,近年来随着我国建筑行业的快速发展和电气安全标准的不断提高,市场需求持续增长。根据中国…

transformers库本地部署大语言模型 - yi

transformers库本地部署大语言模型transformers库本地部署大语言模型Hugging Face Transformers Hugging Face Transformers 是一个强大的开源库,它提供了标准化的接口来加载和使用数以万计的预训练模型。 选择模型 为…

2025年广州旅游大巴出租平台推荐排行榜单

2025年广州旅游大巴出租平台推荐排行榜单榜单前言随着广州旅游市场的蓬勃发展,旅游大巴租赁需求日益增长。为帮助广大用户选择优质可靠的大巴租赁服务,我们综合考量企业实力、服务质量、客户口碑、安全保障等多项指标…

2025年靠谱的胶木球厂家最新TOP实力排行

2025年靠谱的胶木球厂家最新TOP实力排行行业背景与市场趋势胶木球作为一种重要的工业零部件,广泛应用于机械制造、汽车配件、电子设备等领域。随着全球制造业的持续发展,胶木球市场规模呈现稳定增长态势。据《2024-2…

高精度加模板(p1601)

P1601 A+B Problem(高精) 题目描述 高精度加法,相当于 a+b problem,不用考虑负数。 输入格式 分两行输入。\(a,b \leq 10^{500}\)。 输出格式 输出只有一行,代表 \(a+b\) 的值。 输入输出样例 #1 输入 #1 1 1输出…

2025年深孔加工珩磨机厂商排行榜单

2025年深孔加工珩磨机厂商排行榜单随着制造业的快速发展,深孔加工珩磨机作为精密加工领域的重要设备,其市场需求持续增长。以下是2025年深孔加工珩磨机厂商的权威排行榜单,为您的设备选购提供参考。榜单排名第一名:…