python的os库常用代码

了解路径,就一定要先了解正斜杠 '/' 和反斜杠 '\'。在 MacOS 和 Linux 系统下,路径默认使用的都是正斜杠'/',在Windows系统下,正反斜杠都可以表示路径分隔符,默认的是反斜杠 '\'。由于反斜杠本身属于转义符,如 '\n' 表示换行符、'\t' 表示横向制表符,这可能会导致使用反斜杠表示的路径在编码时无法被正确识别,如路径'D:\test',在 Python 中,'\test' 中的 '\t' 被识别为制表符,所以该路径无法被找到.

针对这种情况,通常有三种解决办法。

  • 在每个分隔符前加一个反斜杠,原理是先将转义字符转义,例如'D:\\test'
  • 通过非转义的原始字符 'r',在路径字符串前添加 r,例如r'D:\test'
  • 将路径字符串中所有的反斜杠 '\' 改为正斜杠 '/' ,例如'D:/test'

os的路径函数:

path = r'D:\test\number01\huitao.pdf'

path1=r'D:\test\number02'

path2='huitao.txt'

os.path.splite(path)    #  (r'D:\test\number01','huitao.pdf')返回这俩部分

os.path.dirname(path) #   返回 (r'D:\test\number01')

os.path.basename(path)  #返回 (r'huitao.pdf')

os.path.join(path1,path2)  #返回(r'D:\test\number02\huitao.txt')

# 需要查找文件的文件夹
dir= r'D:\test\Pythonfile\资源1\经济主要指标'
# 创建存放结果的列表
list_2024 = list()# os.listdir()函数遍历指定文件夹,返回包含文件夹中所有文件的列表
all_files = os.listdir(dir)
# 遍历文件夹中每一个文件
for file in all_files:# 拼接一个文件的路径,得到该文件的绝对路径file_path = os.path.join(dir, file)# 使用os.path.basename()函数获取文件名,判断这个文件的文件名是否含有关键字“2024”## 该语句可以替换为 if “2024” in os.path.split(file_path)[1]:if '2024' in os.path.basename(file_path): list_2024.append(file_path)

 

 

path = r'D:\test\number01\huitao.pdf'

path1=r'D:\test\number02'

path2='huitao.txt'

os.path.exists(path)  #是否存在这个路径

os.path.getsize(path ) #返回文件大小

os.path.getttime(path) #获取指定文件的修改时间

os.path.getctime(path) #获取指定文件的创建时间

os.path.isfile(path)  #判断这个路径是否是文件

os.path.isabs(path) #判断是否为绝对路径

os.path.isdir(path) #判定指定路径是否为目录

# 文件的绝对路径
path = r'D:\test\Pythonfile\资源1\经济主要指标\投标标.xlsx'
# 判断该路径是否指向文件,避免路径错误
if os.path.exists(path):# 获取指定文件的大小size = os.path.getsize(path)# 获取指定文件的修改时间mtime = os.path.getmtime(path)print(f'文件大小为{size}字节,最后修改时间为{mtime}')
else:print('指定路径不存在')

path = r'D:\test\number01\huitao.pdf'

os.path.splitetext(path ) #文件扩展名 返回(D:\test\number01\huitao,‘.pdf’)

# 文件夹的绝对路径
path = r'D:\test\Pythonfile\资源1\主要指标\huit.pdf'
#用于存放结果的列表
pdf_files = list()# os.listdir()函数遍历指定文件夹,返回包含文件夹中所有文件的列表
all_files_name = os.listdir(path)
# 遍历每一个文件
for file_name in all_files_name:# 拼接文件的路径file_path = os.path.join(path, file_name)# 如果文件得到拓展名为'pdf',将其添加到列表中if os.path.splitext(file_path)[1] == '.pdf':pdf_files.append(file_path)

 文件和目录的遍历方法

path = r'D:\test'

os.listdir(path) #返回来 (number01,number01,keras.txt)

os.walk(top,topdown=true,οnerrοr=none,followlinks=false)

  • top 为要遍历的目录路径。返回的是一个三元组(dirpath,dirnames,filenames),dirpath 为当前遍历的目录树的目录路径,dirnames 为当前目录下所有子目录列表,filenames为当前目录下所有文件列表
  • topdown 为可选参数,为 True 时(默认)表示优先遍历 top目录,即 walk 会遍历 top 文件夹与其每一个子目录。否则会优先遍历 top 的子目录。
  • onerror 为可选的错误处理函数。
  • followlinks为可选参数,为 True 时表示会遍历目录下的快捷方式实际所指的目录,为 False 时(默认)表示优先遍历 top 的子目录。
# 递归遍历该目录
walk_tree = os.walk('D:\数据Seminar\Python中的os模块\递归遍历示例文件夹')# 从根目录开始遍历整个目录树,每一个目录都会返回一个三元组,使用for循环依次查看结果
for dirpath,dirnames,filenames in walk_tree:print('----------当前遍历的目录树的目录路径----------')print(dirpath)print('----------当前目录下的所有子目录列表----------')# 遍历当前目录下所有的子目录for dirname in dirnames:# 拼接路径,得到子目录的路径dir_name = os.path.join(dirpath, dirname)print(dir_name)print('----------当前目录下所有文件列表----------')# 遍历当前目录下所有的文件for filename in filenames:# 拼接路径,得到文件路径file_name = os.path.join(dirpath,filename)print(file_name)

 

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

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

相关文章

Rust复合类型详解

在Rust中,复合类型是一种能够将多个值组合在一起的数据类型。本篇博客将介绍两种常见的复合类型:元组(Tuple)和数组(Array)。 Tuple(元组) 元组是Rust中的一种复合类型&#xff0c…

机器学习:过拟合和欠拟合的介绍与解决方法

过拟合和欠拟合的表现和解决方法。 其实除了欠拟合和过拟合,还有一种是适度拟合,适度拟合就是我们模型训练想要达到的状态,不过适度拟合这个词平时真的好少见。 过拟合 过拟合的表现 模型在训练集上的表现非常好,但是在测试集…

代码随想录刷题笔记 DAY 23 | 修剪二叉搜索树 No.669 | 将有序数组转换为二叉搜索树 No.108 | 把二叉搜索树转换为累加树 No.538

文章目录 Day 2301. 修剪二叉搜索树(No. 669)1.1 题目1.2 笔记1.3 代码 02. 将有序数组转换为二叉搜索树(No. 108)2.1 题目2.2 笔记2.3 代码 03. 把二叉搜索树转换为累加树(No. 538)3.1 题目3.2 笔记3.3 代…

Vue - 快速入门(一)

阅读文章可以收获: 1. 明白什么是vue 2. 如何创建一个vue实例 3. vue中的插值表达式如何使用 4. 如何安装vue的开发者工具 Vue 概念 什么是vue? Vue 是一个用于 构建用户界面 的 渐进式 框架 框架优点:大大提升开发效率 (70%↑) 缺点…

第80讲订单管理功能实现

后端 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace"com.java1234.mapper.OrderM…

深入学习Pandas:数据连接、合并、加入、添加、重构函数的全面指南【第72篇—python:数据连接】

深入学习Pandas&#xff1a;数据连接、合并、加入、添加、重构函数的全面指南 Pandas是Python中最强大且广泛使用的数据处理库之一&#xff0c;提供了丰富的函数和工具&#xff0c;以便更轻松地处理和分析数据。在本文中&#xff0c;我们将深入探讨Pandas中一系列数据连接、合…

python中的数组和list的异同

在Python中&#xff0c;数组和列表&#xff08;list&#xff09;是两个非常相似但又不完全一样的数据结构。实际上&#xff0c;Python本身并没有原生的数组类型&#xff0c;而列表&#xff08;list&#xff09;是Python提供的一种非常灵活且常用的序列类型。下面我将简要介绍它…

【教程】autojs使用Intent打开相机拍照并指定存储路径

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] var photoPath "/sdcard/a.jpg"; var photoFile new java.io.File(photoPath); if (!photoFile.exists()) {photoFile.getParentFile().mkdirs();} try {photoFile.createNewFile(); } catch (e) {to…

React18原理: 再聊Fiber架构下的时间分片

时间分片 react的任务可以被打断&#xff0c;其实就是基于时间分片的人眼最高能识别的帧数不超过30帧&#xff0c;电影的帧数差不多是在24浏览器的帧率一般来说是60帧&#xff0c;也就是每秒60个画面, 平均一个画面大概是16.5毫秒左右浏览器正常的工作流程是运算渲染&#xff…

【iOS操作系统——讲解】

iOS操作系统 iOS操作系统 iOS操作系统 iOS是苹果公司开发的移动操作系统&#xff0c;最初在2007年推出&#xff0c;当时伴随着第一代iPhone一起亮相&#xff0c;iOS是基于Darwin (BSD)操作系统核心的&#xff0c;并且具有对多点触控手势的原生支持&#xff0c;这些手势在iOS界…

UVA11181条件概率 Probability|Given

条件概率 Probability|Given - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 样例解释&#xff1a; 需要学习条件概率和贝叶斯定理 //1 2 - 0.1*0.2*(1-0.3) 0.014 //1 - 3 0.1*0.8*0.3 0.024 //- 2 3 0.9*0.2*0.3 0.054 // 0.092//(0.0140.024)/0.092 0.4…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之QRCode组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之QRCode组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、QRCode组件 用于显示单个二维码的组件。 子组件 无。 接口 QRCode(value: st…

python-分享篇-GUI界面开发-PyQt5-对QListWidget列表进行数据绑定

代码 # -*- coding: utf-8 -*-# Form implementation generated from reading ui file bindlist.ui # # Created by: PyQt5 UI code generator 5.11.3 # # WARNING! All changes made in this file will be lost! 对QListWidget列表进行数据绑定from PyQt5 import QtCore, QtG…

Elasticsearch:混合搜索是 GenAI 应用的未来

在这个竞争激烈的人工智能时代&#xff0c;自动化和数据为王。 从庞大的存储库中有效地自动化搜索和检索信息的过程的能力变得至关重要。 随着技术的进步&#xff0c;信息检索方法也在不断进步&#xff0c;从而导致了各种搜索机制的发展。 随着生成式人工智能模型成为吸引力的中…

华为云ModelBox实战:体感小游戏应用实操

目录 一、VsCode插件注册ModelBox设备二、Windows SDK安装1.安装Git for Windows2.下载ModelBox SDK3.相关插件安装 三、体感小游戏应用开发1.技能模板使用2.AI应用示例3.体感小游戏体验 参与华为云活动【HCSD】ModelBox实战营邀请活动&#xff0c;呼朋唤友学AIoT&#xff0c;完…

flask+python企业产品订单管理系统938re

在设计中采用“自下而上”的思想&#xff0c;在创新型产品提前购模块实现了个人中心、个体管理、发布企业管理、投资企业管理、项目分类管理、产品项目管理、个体投资管理、企业投资管理、个体订单管理、企业订单管理、系统管理等的功能性进行操作。最终&#xff0c;对基本系统…

Java学习-常用API(二)

Math类及其常用API&#xff1a; 演示&#xff1a; StringBuilder的认识及其常用方法&#xff1a; StringBuilder支持链式编程 StringBuilder sbnew StringBuilder&#xff08;&#xff09;&#xff1b;sb.append&#xff08;12&#xff09;.append.&#xff08;“itHeima”&am…

synchronized关键字以及底层实现

目录 基本使用 底层实现 synchronized锁升级 对象的内存结构 ⅰ. 对象头 1. ① 运行时元数据 (Mark Word) (占64位) a. 哈希值 (HashCode) b. GC分代年龄 c. 锁状态标记 2. ② 类型指针: (Klass Point) (占 32位) ⅱ. 实例数据 ⅲ. 对齐填充 Moniter重量级锁 轻量…

[ai笔记3] ai春晚观后感-谈谈ai与艺术

欢迎来到文思源想的ai空间&#xff0c;这是技术老兵重学ai以及成长思考的第3篇分享&#xff01; 今天我们不聊技术&#xff0c;只聊感受&#xff01; 1 关于ai春晚 期待许久的ai春晚&#xff0c;但是等初一晚上观看的时候&#xff0c;或多或少还是有些失望。 首先是观看人数…

前端工程化面试题 | 06.精选前端工程化高频面试题

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…