Python 进阶(五):os 模块

news/2024/4/20 1:39:28/文章来源:https://blog.csdn.net/weixin_67276852/article/details/132001146

在这里插入图片描述

❤️ 博客主页:水滴技术
🌸 订阅专栏:Python 入门核心技术
🚀 支持水滴:点赞👍 + 收藏⭐ + 留言💬

文章目录

  • 1. 文件和目录的基本操作
    • 1.1 获取当前工作目录
    • 1.2 更改当前工作目录
    • 1.3 获取目录下所有文件和目录
    • 1.4 创建目录
    • 1.5 删除文件
    • 1.6 删除目录
    • 1.7 递归删除目录
    • 1.8 重命名文件或目录
    • 1.9 获取文件或目录属性
  • 2. 文件和目录的遍历
    • 2.1 遍历目录树
    • 2.2 列出目录下的文件和目录
  • 3. 文件和目录的属性和权限
    • 3.1 获取文件或目录的访问和修改时间
    • 3.2 获取文件或目录的大小
    • 3.3 获取文件或目录的权限
  • 4. 文件和目录的路径操作
    • 4.1 获取文件名和目录名
    • 4.2 拼接路径
    • 4.3 分离路径和扩展名
    • 4.4 判断路径是否存在
    • 4.5 判断路径是否为文件或目录
  • 5. 总结
  • 系列文章
  • 热门专栏


大家好,我是水滴~~

Python 的 os 模块是一个与操作系统交互的模块,它提供了许多函数和方法,可以用于操作文件和目录。本教程将深入介绍 os 模块的各种功能和用法。

1. 文件和目录的基本操作

1.1 获取当前工作目录

os.getcwd() 方法可以获取当前工作目录的路径,即 Python 解释器当前所在的目录。

import os# 获取当前工作目录
cwd = os.getcwd()
print(cwd)

1.2 更改当前工作目录

os.chdir(path) 方法可以更改当前工作目录的路径。

import os# 更改当前工作目录
os.chdir('/path/to/new/directory')

1.3 获取目录下所有文件和目录

os.listdir(path) 方法可以获取指定目录下的所有文件和目录的名称列表。

import os# 获取目录下所有文件和目录
path = '/path/to/directory'
dir_list = os.listdir(path)
print(dir_list)

1.4 创建目录

os.makedirs(path) 方法可以递归创建指定路径的目录,如果目录已经存在,则不会进行任何操作。

import os# 创建目录
path = '/path/to/new/directory'
os.makedirs(path)

1.5 删除文件

os.remove(path) 方法可以删除指定路径的文件。

import os# 删除文件
path = '/path/to/file'
os.remove(path)

1.6 删除目录

os.rmdir(path) 方法可以删除指定路径的目录,但前提是该目录必须为空。

import os# 删除目录
path = '/path/to/empty/directory'
os.rmdir(path)

1.7 递归删除目录

shutil.rmtree(path) 方法可以递归删除指定路径的目录及其所有子目录和文件。

import shutil# 递归删除目录
path = '/path/to/directory'
shutil.rmtree(path)

1.8 重命名文件或目录

os.rename(src, dst) 方法可以将指定路径的文件或目录重命名为另一个名称或路径。

import os# 重命名文件或目录
src = '/path/to/old/name'
dst = '/path/to/new/name'
os.rename(src, dst)

1.9 获取文件或目录属性

os.stat(path) 方法可以获取指定路径的文件或目录的属性信息。

import os# 获取文件或目录属性
path = '/path/to/file_or_directory'
info = os.stat(path)
print(info)

2. 文件和目录的遍历

2.1 遍历目录树

os.walk(top, topdown=True, onerror=None, followlinks=False) 方法可以遍历指定目录下的所有子目录和文件,并返回一个三元组,包含每个子目录路径、该目录下的所有目录名称列表和该目录下的所有文件名称列表。

import os# 遍历目录树
for root, dirs, files in os.walk('/path/to/directory'):print('目录路径:', root)print('子目录列表:', dirs)print('文件列表:', files)

2.2 列出目录下的文件和目录

os.scandir(path) 方法可以列出指定路径的目录下的所有文件和目录,返回一个迭代器,包含每个文件和目录的详细信息。

import os# 列出目录下的文件和目录
path = '/path/to/directory'
with os.scandir(path) as entries:for entry in entries:print(entry.name, entry.is_file(), entry.is_dir())

3. 文件和目录的属性和权限

3.1 获取文件或目录的访问和修改时间

os.path.getatime(path) 方法可以获取指定路径的文件或目录的最后访问时间。

os.path.getmtime(path) 方法可以获取指定路径的文件或目录的最后修改时间。

import os# 获取文件或目录的访问和修改时间
path = '/path/to/file_or_directory'
atime = os.path.getatime(path)
mtime =os.path.getmtime(path)
print('最后访问时间:', atime)
print('最后修改时间:', mtime)

3.2 获取文件或目录的大小

os.path.getsize(path) 方法可以获取指定路径的文件或目录的大小,单位为字节。

import os# 获取文件或目录的大小
path = '/path/to/file_or_directory'
size = os.path.getsize(path)
print('大小为:', size, '字节')

3.3 获取文件或目录的权限

os.stat(path) 方法返回的属性信息中包含了文件或目录的权限信息,可以使用 stat 模块的常量来解析这些属性。

import os
import stat# 获取文件或目录的权限
path = '/path/to/file_or_directory'
mode = os.stat(path).st_mode
print('权限为:', oct(stat.S_IMODE(mode)))

4. 文件和目录的路径操作

4.1 获取文件名和目录名

os.path.basename(path) 方法可以获取指定路径的文件名或目录名。

os.path.dirname(path) 方法可以获取指定路径的目录名或上级目录名。

import os# 获取文件名和目录名
path = '/path/to/file_or_directory'
filename = os.path.basename(path)
dirname = os.path.dirname(path)
print('文件名为:', filename)
print('目录名为:', dirname)

4.2 拼接路径

os.path.join(path1, path2, ...) 方法可以将多个路径拼接为一个路径。

import os# 拼接路径
path1 = '/path/to'
path2 = 'file_or_directory'
path = os.path.join(path1, path2)
print('拼接后的路径为:', path)

4.3 分离路径和扩展名

os.path.splitext(path) 方法可以将指定路径的文件名分离为文件名和扩展名。

import os# 分离路径和扩展名
path = '/path/to/file.txt'
name, ext = os.path.splitext(path)
print('文件名为:', name)
print('扩展名为:', ext)

4.4 判断路径是否存在

os.path.exists(path) 方法可以判断指定路径是否存在。

import os# 判断路径是否存在
path = '/path/to/file_or_directory'
if os.path.exists(path):print('路径存在')
else:print('路径不存在')

4.5 判断路径是否为文件或目录

os.path.isfile(path) 方法可以判断指定路径是否为文件。

os.path.isdir(path) 方法可以判断指定路径是否为目录。

import os# 判断路径是否为文件或目录
path = '/path/to/file_or_directory'
if os.path.isfile(path):print('路径为文件')
elif os.path.isdir(path):print('路径为目录')
else:print('路径不存在')

5. 总结

本教程深入介绍了 Python 的 os 模块的各种功能和用法,包括文件和目录的基本操作、遍历、属性和权限、路径操作等。 os 模块是 Python 编程中非常重要和实用的模块之一,熟练掌握其各种方法和技巧,可以帮助我们更加高效地处理文件和目录相关的任务。


系列文章

🔥 Python 进阶(一):PyCharm 下载、安装和使用
🔥 Python 进阶(二):操作字符串的常用方法
🔥 Python 进阶(三):正则表达式(re 模块)
🔥 Python 进阶(四):日期和时间(time、datetime、calendar 模块)

热门专栏

👍 《Python入门核心技术》
👍 《IDEA 教程:从入门到精通》
👍 《Java 教程:从入门到精通》
👍 《MySQL 教程:从入门到精通》
👍 《大数据核心技术从入门到精通》

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

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

相关文章

qssh使用

到官网下载qssh的源码QSsh-botan-1,使用qtcreator打开后,直接编译,即可得到qssh的库 头文件将QSsh-botan-1\src\libs\ssh目录下的.h文件拷到include文件夹下,即为库头文件。 qssh有个问题,如果你将qssh的类放在子线程…

致敬图灵!HashData拥抱数据智能新时代!

图1:2023ACM中国图灵大会现场 生于1912年的艾伦图灵被称为“计算机科学之父”、“人工智能之父”。1966年,国际计算机协会(ACM)为了纪念这位卓越的科学家,设立了以其名字命名的ACM图灵奖,以表彰在计算机领…

MySQL | 常用命令示例

MySQL | 常用命令示例 一、启停MySQL数据库服务二、连接MySQL数据库三、创建和管理数据库四、创建和管理数据表五、数据备份和恢复六、查询与优化 MySQL是一款常用的关系型数据库管理系统,广泛应用于各个领域。在使用MySQL时,我们经常需要编写一些常用脚…

【初阶C语言】整数比大小

各位大佬的光临已是上上签 在C语言刷题过程中,一定遇到过很多比大小的题目,那么本节就专门介绍比大小的方法,若大佬们还有更优解,欢迎补充呀! 本节讲解的方法主要有三种:1.条件判断 2.三目操作符 3.函数调…

干翻Dubbo系列第四篇:Dubbo3第一个应用程序细节补充

前言 不从恶人的计谋,不站罪人的道路,不坐亵慢人的座位,惟喜爱耶和华的律法,昼夜思想,这人便为有福!他要像一棵树栽在溪水旁,按时候结果子,叶子也不枯干。凡他所做的尽都顺利。 如…

14 Linux实操篇-进程管理(重点)

14 Linux实操篇-进程管理(重点) 文章目录 14 Linux实操篇-进程管理(重点)14.1 进程的基本操作14.1.1 进程和程序14.1.2 父进程和子进程14.1.3 常见的Linux进程14.1.4 显示系统执行的进程-ps14.1.5 终止进程-kill/killall14.1.6 查…

36.悬浮板

悬浮板 html部分 <div class"container"><div class"square"></div> </div>css部分 *{margin: 0;padding: 0; } body{background-color: #111;height: 100vh;overflow: hidden;display: flex;justify-content: center;align-it…

【小白必看】Python爬虫实战之批量下载女神图片并保存到本地

文章目录 前言运行结果部分图片1. 引入所需库2. 发送请求获取网页内容3. 解析网页内容并提取图片地址和名称4. 下载并保存图片完整代码关键代码讲解 结束语 前言 爬取网络上的图片是一种常见的需求&#xff0c;它可以帮助我们批量下载大量图片并进行后续处理。本文将介绍如何使…

机器学习 | Python实现NARX模型预测控制

机器学习 | Python实现NARX模型预测控制 目录 机器学习 | Python实现NARX模型预测控制效果一览基本介绍研究内容程序设计参考资料效果一览 基本介绍 机器学习 | Python实现NARX模型预测控制 研究内容 贝叶斯黑盒模型预测控制,基于具有外源输入的非线性自回归模型的预期自由能最…

绝美!轮到AI写真爆火了!18种AI视频制作教程;Llama 2微调的极速指南;Nijijourney官方AI绘画课 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 摄影写真面临AI技术洗牌&#xff0c;一键生成杂志大片的时代来了 软件&#xff1a;midjourney & Stable Diffusion 模型&#xff…

TypeScript基础篇 - TS模块

目录 模块的概念 Export 语法&#xff08;default&#xff09; Export 语法&#xff08;non-default&#xff09; import 别名 Type Export语法【TS】 模块相关配置项&#xff1a;module【tsconfig.json】 模块相关配置项&#xff1a;moduleResolution 小节总结 模块的…

【LLM】大语言模型学习之LLAMA 2:Open Foundation and Fine-Tuned Chat Model

大语言模型学习之LLAMA 2:Open Foundation and Fine-Tuned Chat Model 快速了解预训练预训练模型评估微调有监督微调(SFT)人类反馈的强化学习(RLHF)RLHF结果局限性安全性预训练的安全性安全微调上手就干使用登记代码下载获取模型转换模型搭建Text-Generation-WebUI分发模型…

pytorch的发展历史,与其他框架的联系

我一直是这样以为的&#xff1a;pytorch的底层实现是c(这一点没有问题&#xff0c;见下边的pytorch结构图),然后这个部分顺理成章的被命名为torch,并提供c接口,我们在python中常用的是带有python接口的&#xff0c;所以被称为pytorch。昨天无意中看到Torch是由lua语言写的&…

M 芯片的 macos 系统安装虚拟机 centos7 网络配置

centos 安装之前把网络配置配好或者是把网线插好 第一步找到这个 第二步打开网络适配器 选择图中所指位置 设置好之后 开机启动 centos 第三步 开机以后 编写网卡文件保存 重启网卡就可以了&#xff0c;如果重启网卡不管用&#xff0c;则重启虚拟机即可 “ ifcfg-ens160 ” 这…

【java入门学习】

文章目录 java学习章节目录学习前的准备main函数怎么写&#xff1f;Java程序运行的步骤如何让代码运行起来&#xff1f;java程序由三部分构成&#xff1a;注释注释规范 标识符练习 总结 java学习章节目录 SE语法 初阶段主要来熟悉java的语法&#xff1a; 1.初始java 2.数据类型…

黑苹果如何在macOS Sonoma中驱动博通网卡

准备资源&#xff08;百度&#xff1a;黑果魏叔 下载&#xff09; 资源包中包含&#xff1a;AirportBrcmFixup.kext/IOSkywalkFamily.kext/IO80211FamilyLegacy.kext/OpenCore-Patcher 使用方法&#xff1a; 1.将 csr-active-config 设置为 03080000 全选代码 复制 2.在 …

kafka集群搭建(Linux环境)

zookeeper搭建&#xff0c;可以搭建集群&#xff0c;也可以单机&#xff08;本地学习&#xff0c;没必要搭建zookeeper集群&#xff0c;单机完全够用了&#xff0c;主要学习的是kafka&#xff09; 1. 首先官网下载zookeeper&#xff1a;Apache ZooKeeper 2. 下载好之后上传到…

layui框架学习(33:流加载模块)

Layui中的流加载模块flow主要支持信息流加载和图片懒加载两部分内容&#xff0c;前者是指动态加载后续内容&#xff0c;示例的话可以参考csdn个人博客主页&#xff0c;鼠标移动到页面底部时自动加载更多内容&#xff0c;而后者是指页面显示图片时才会延迟加载图片信息。   fl…

记录vue的一些踩坑日记

记录vue的一些踩坑日记 安装Jq npm install jquery --save vue列表跳转到详情页&#xff0c;再返回列表的时候不刷新页面并且保持原位置不变&#xff1b; 解决&#xff1a;使用keepAlive 在需要被缓存的页面的路由中添加&#xff1a;keepAlive: true, {path: /viewExamine,nam…

怎么在线修改图片?分享一个图片修改工具

无论是在个人或商业领域&#xff0c;我们都需要使用高质量的图片来传达信息或提高品牌形象。大尺寸的图片也会占据大量的存储空间和带宽&#xff0c;影响网站的加载速度和用户体验。因此&#xff0c;我们需要一种高效的工具来解决这个问题。今天向大家介绍一款非常实用的图片处…