Python之文件与文件夹操作

news2024/11/24 18:58:05

目录

    • 1、Pathlib
      • 1.1、glob(),rglob()
      • 1.2、目录拼接
      • 1.3、重命名
      • 1.4、复制文件
    • 2、os
    • 3、os.path
    • 4、示例

1、Pathlib

# 通过cwd()获得当前工作目录
# 通过home()获得主目录
from pathlib import Path
currentPath = Path.cwd()
print(f"Current directory: {currentPath}")
print(f"Home directory: {Path.home()}")
Current directory: E:\pycharm_python\demo01
Home directory: C:\Users\Dell

实例:获取当前文件下的所有文件,并根据后缀名统计其个数。

from  pathlib import Path
path = Path.cwd()
# suffix获取后缀名
g = (i.suffix for i in path.iterdir())
# print(list(g))
d = dict()
for ch in list(g):
    d[ch] = d.get(ch, 0) + 1
print(d)

在这里插入图片描述

1.1、glob(),rglob()

from pathlib import Path

p = Path.cwd()

print()
# 返回当前目录中的所有文件和文件夹
for i in p.glob(r"*"):
    print(i)

print()
# 返回当前目录,及所有子目录中的所有文件和文件夹
for i in p.rglob("*"):
    print(i)

print()
# 返回当前目录,及其下所有子目录中的 所有文件夹
for i in p.glob(r"**"):
    print(i)

# 获取当前文件下的所有 txt 文件
g = (i.suffix for i in p.glob('*.txt'))
print(list(g))
Path.exists(),判断 Path 路径是否指向一个已存在的文件或目录,返回 TrueFalse
Path.is_dir(),判断 Path 是否是一个路径,返回 TrueFalse
Path.is_file(),判断 Path 是否指向一个文件,返回 TrueFalse
Path.unlink(),删除文件

1.2、目录拼接

from pathlib import Path
path = Path.cwd() / 'new' # 目录拼接
try:
    if path.exists() and path.is_dir():
        path.rmdir()          # 删除空目录
    path.mkdir()              # 创建目录
except Exception as ex:
    print(ex)

在这里插入图片描述

1.3、重命名

from pathlib import Path
try:
    path = Path('hello.txt')
    path.rename('1.txt')
except  Exception as ex:
    print(ex)

1.4、复制文件

from pathlib import Path

src = Path('1.txt')
dest = Path('hello.txt')
if not dest.exists():
    dest.touch() #创建一个新的空文件
dest.write_text(src.read_text())

在这里插入图片描述

2、os

在这里插入图片描述

3、os.path

在这里插入图片描述

4、示例

编写程序,递归删除指定目录及子目录中指定类型的文件和大小为0的文件

from os.path import isdir, join, splitext
from os import remove, listdir, chmod, stat

filetypes = ('.png', '.log', '.obj', '.txt')     #指定要删除的文件类型

def delCertainFiles(directory):					
    if not isdir(directory):					#是否是一个路径
        return
    for filename in listdir(directory):
        temp = join(directory, filename)
        if isdir(temp):
            delCertainFiles(temp)                #递归调用
        elif splitext(temp)[1] in filetypes or stat(temp).st_size==0:
            chmod(temp, 0o777)                   #修改文件属性,获取删除权限
            remove(temp)                         #删除文件
            print(temp, ' deleted....')

delCertainFiles(r'E:\pycharm_python\demo01')

在这里插入图片描述

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

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

相关文章

Android开发中自定义饼图以及百分比展示

本篇文章主要讲解有关怎么用自定义View绘制圆形饼图,饼图内容包含:饼图内部添加百分比、绘制短延长线以及长延长线、延长线上添加文字说明。下面进行主要内容分析说明,文章最后附上全部代码以及具体使用说明: 效果图:…

3d max软件中的缓存垃圾该如何清理?

使用3d max建模到渲染操作,来回对效果图调整的次数过多时,就会出现一下看不到的垃圾缓存,影响保存的速度,影响效率! 对于这类的3d垃圾清理的有什么高效方法呢? 3dmax垃圾清理的常规操作如下: 1、…

pandas的一些函数

1、pd.read_csv () 读取csv文件 import pandas as pddf pd.read_csv(Popular_Baby_Names.csv)df pd.read_csv(Popular_Baby_Names.csv, sep;, header0, index_col0, skiprows5, na_valuesN/A)##读取CSV文件data.csv,使用;作为分隔符,第一行作为标题&…

idea 一直卡在maven正在解析maven依赖

修改maven Importing的jvm参数 -Xms1024m -Xmx2048m

OpenAI开发者大会之后,当何去何从?

简介 过往总结 ​产品升级 GPT-4 Turbo Agent化 此间的未来 定制GPT GPT商店 Assistants API 总结与思考 简介 此次发布会简单总结如下。 1. 发布GPT-4 Turbo: 更长。支持128K上下文输入,标准GPT-4是8K版本,之前升级出了32K版本 更…

kubernetes (k8s)的使用

一、kubernetes 简介 谷歌2014年开源的管理工具项目,简化微服务的开发和部署。 提供功能:自愈和自动伸缩、调度和发布、调用链监控、配置管理、Metrics监控、日志监控、弹性和容错、API管理、服务安全等。官网:https://kubernetes.io/zh-cn…

5-爬虫-打码平台、打码平台自动登录打码平台、selenium爬取京东商品信息、scrapy介绍安装、scrapy目录结构

1 打码平台 1.1 案例 2 打码平台自动登录打码平台 3 selenium爬取京东商品信息 4 scrapy介绍安装 5 scrapy目录结构 1 打码平台 # 1 登录某些网站,会有验证码---》想自动破解-数字字母:python模块:ddddocr-计算题,成语题&#xf…

物联网AI MicroPython学习之语法 ucollections集合和容器类型

学物联网,来万物简单IoT物联网!! ucollections 介绍 ucollections 模块用于创建一个新的容器类型,用于保存各种对象。 接口说明 namedtuple - 创建一个新namedtuple容器类型 函数原型: 创建一个具有特定名称和一组…

rviz添加qt插件

一、增加rviz plugin插件 资料:http://admin.guyuehome.com/42336 https://blog.51cto.com/u_13625033/6126970 这部分代码只是将上面两个链接中的代码整合在了一起,整合在一起后可以更好的理解其中的关系 1、创建软件包 catkin_create_pkg rviz_tel…

MySQL数据库的各种锁介绍以及它们之间的关系

MySQL数据库的各种锁 表级锁、行级锁、间隙锁、意向锁、记录锁,悲观锁和乐观锁 表级锁包含表级共享锁和表级排他锁行级锁包含行级共享锁和行级排他锁间隙锁是行级锁的一种特殊锁,锁定既定列的范围值意向锁是事务对表中某些行或者范围发起的一项操作&am…

Hbuiderx链接到夜神模拟器(DCloud数字天堂)

赞助 DCloud 即数字天堂(北京)网络技术有限公司是 W3C成员及 HTML5中国产业联盟 发起单位 Hbuiderx切换使用夜神模拟器自带的ADB.exe链接到夜神模拟器 同步资源失败,未得到同步资源的授权,请停止运行后重新运行,并注意…

数据的读取和保存-MATLAB

1 序言 在进行数据处理时,经常需要写代码对保存在文件中的数据进行读取→处理→保存的操作,流程图如下: 笔者每次在进行上述操作时,都需要百度如何“选中目标文件”以及如何“将处理好的数据保存到目标文件中”,对这一…

本地域名 127.0.0.1 / localhost

所谓本地域名就是 只能在本机使用的域名 ,一般在开发阶段使用。 编辑文件 C:\Windows\System32\drivers\etc\hosts。 127.0.0.1 www.baidu.com如果修改失败,可以修改该文件的权限。 原理: 在地址栏输入 域名 之后,浏览器会先进行 DNS…

SpringBoot定时任务打成jar 引入到新的项目中后并自动执行

一、springBoot开发定时任务 ①&#xff1a;连接数据库实现新增功能 1. 引入依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional> </dependency> <dependen…

Python高级语法----深入理解Python协程

文章目录 什么是协程?Python中的协程基本示例协程和事件循环总结Python协程是一种非常强大的并发编程概念,让你能够高效地处理多任务。协程在Python中的使用已经变得越来越流行,特别是在异步编程中。本文将用通俗易懂的语言来介绍协程的概念,并提供实际的代码示例和执行结果…

软件测试怎么测别的类的main方法

软件测试怎么测别的类的main方法 🍎如果软测开发者题目待测类里有main方法,我们如何测? 可以采取以下步骤: 了解main函数的功能:首先,你需要了解这个main函数的功能和预期的输出。这样你才能设计出合适的测试用例。设计测试用例:设计测试用例时,需要考虑各种可能的输…

【Linux】了解文件的inode元信息,以及日志分析

目录 一、inode表结构&#xff0c;以及元信息 1、了解inode信息有哪些 2、关于inode表的说明 Linux中访问文件的过程&#xff1a; 3、硬连接与软连接的区别&#xff0c;&#xff08;请看前面&#xff0c;写过的&#xff09; 二、文件系统的备份与恢复 三、几种常见的日志…

【uniapp】签名组件,兼容vue2vue3

网上找了个源码改吧改吧&#xff0c;清除了没用的功能和兼容性&#xff0c;基于uniapp开发的 样子 vue2 使用方法&#xff0c;具体的可以根据业务自行修改 <signature ref"signature" width"100%" height"410rpx"></signature>confi…

C函数的反汇编

fromelf --bin --outputxxx.bin xxx.axf fromelf --text -a -c --outputxxx.dis xxx.axf去Linker下面复制该目录下的xxx.axf xxx.dis名字随便改&#xff0c;保证后缀是dis就行 然后确认&#xff0c;进行编译 就生成了task.dis文件

【MySQL】库操作和表操作

文章目录 一、库操作1. 创建数据库2. 数据库的编码问题查看系统默认支持的字符集查看数据库支持的字符集查看数据库支持的字符集校验规则校验规则对数据库的影响 3. 操纵数据库查看数据库显示创建语句修改数据库删除数据库 4. 数据库的备份和恢复数据库的备份数据库的恢复表的删…