python 遍历文件夹、正则表达式字符串匹配、拷贝文件

Python脚本1 文件处理系列1 根据正则表达式批量处理同一目录的文件名 当前脚本处理逻辑:使用 Python 原生模块 实现 IO 流处理,为了方便脚本的使用,我尽量将其设置为命令方式的调用,这样就无需关注代码的具体实现,符合脚本的特征。最后,这个脚本支持所有的正则表达式,包括修改后的文件名也是支持正则表达式来表示的。 阅读详情

1.遍历目录:
os.walk(dirpath)
返回三元组(root,dirs,files)
root 所指的是当前正在遍历的这个文件夹的本身的地址
dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)

如下文件夹结构

a ->   b   ->   1.txt,  2.txt
             c   ->   3.txt
             d   ->   
           4.txt
           5.txt
for (root, dirs, files) in os.walk('a'):
    #第一次运行时,当前遍历目录为 a
    所以 root == 'a'
         dirs == [ 'b', 'c', 'd']
         files == [ '4.txt', '5.txt']
    
    。。。

    # 接着遍历 dirs 中的每一个目录
    b:  root  = 'a\\b'
        dirs  = []
        files = [ '1.txt', '2.txt']
    
    # dirs为空,返回
    # 遍历c
    c:  root  = 'a\\c'
        dirs  = []
        files = [ '3.txt' ]
    
    PS : 如果想获取文件的全路径,只需要 
    for f in files:
        path = os.path.join(root,f)
    
    # 遍历d
    d:  root  = 'a\\b'
        dirs  = []
        files = []

    遍历完毕,退出循环

2.路径拼接:
os.path.join()

a_path='aaa'
b_path='bbb'
print(os.path.join(a_path,b_path))

输出aaa/bbb

3.正则表达式匹配字符串

str='.*.jpg'       #.*代替任意长度的字符串
match_obj=re.match(str,string)     #在string中查找str自字符串

4.拷贝文件shutil模块

shutil.copy(source,target) #将文件1的数据覆盖copy给文件2

例子:遍历文件夹中的所有图片移动到另一文件夹


import os
import re
import shutil

root = "/Users/hutingting/Desktop/name"
targetDir='/Users/hutingting/Desktop/result'

for dirpath, dirnames, filenames in os.walk(root):
    for filepath in filenames:
        image_name=os.path.join(dirpath, filepath)
        #print(image_name)
        str1='.*.jpg'
        match_obj = re.match(str1,image_name)
        if match_obj:
            print(image_name)
            shutil.copy(image_name,  targetDir)

python批量提取子文件夹下指定名称的文件 python批量提取子文件夹下指定名称的文件 最近使用数据集时遇到一个问题,需要把每个文件夹下第10张图片复制出来放到一个指定的文件夹里,手动复制太麻烦,所以找了点代码自己改了改。 目录 要提取每个子文件夹下名称后缀为_10.jpg的文件到一个新的文件夹中。 代码 import os import re import xlwt # 递归复制文件夹内的文件 def copyFiles(sourceDir, targetDir): for file in os.listdir(sourceDir): 阅读详情

相关推荐

Windows批量删除文件夹名关键字:CMD、PowerShell与Python脚本实战

在日常文件管理中,批量操作是提升效率的关键,而批量重命名文件夹名则是其中高频且基础的一环。其核心原理并不复杂:遍历目标目录下的所有文件夹,通过字符串匹配与替换定位需要移除的关键字,再调用系统重命名接口完成修改。这一能力在整理下载目录、清除版本后缀或统一团队文件命名规范时尤为实用。Windows 用户无需借助第三方软件,利用系统自带的 CMD 批处理、PowerShell 脚本,或跨平台的 Python 脚本,即可实现可预览、可恢复、可重复执行的自动化清理方案。本文从最直接的 CMD 命令讲起,逐步覆盖递归处

weixin_32325225的博客 340

Python 文件和正则--with文件读取,深浅拷贝,正则表达式

Python 文件和正则--with文件读取,深浅拷贝,正则表达式

Clittle225的博客 647

批量删除文件夹名关键字的三种脚本方案:批处理、PowerShell与Python实践

在日常文件管理和目录整理中,批量重命名文件夹是高频且繁琐的操作,尤其当目录名包含冗余关键字时,手动处理不仅效率低下,还容易出错。借助自动化脚本,可以精准识别并替换文件夹名称中的指定文本片段,实现规范化整理。批处理脚本适合Windows环境下的简单替换,PowerShell则提供更灵活的试运行与日志机制,而Python凭借跨平台能力和清晰的异常处理,成为复杂规则与递归场景的首选。这些方案的核心原理均为遍历目录、替换名称、校验冲突,并通过备份和验证步骤确保操作安全。无论是清理课程目录中的标记、去除备份文件的冗余

weixin_34110749的博客 389

python遍历读取txt文件夹,正则匹配获取目标字段,去除重复写入txt文档

思路:首先遍历循环文件夹,输出地址判断是否读对了文件,读取出文件中的内容,用正则匹配的模式匹配匹配出对应的字段,将两个匹配出来的列表字段合并,去重,写入目标文件夹中。 import re # 导入正则包 import os path = "D:\腾讯QQ\QQ下载\资源" # 文件夹目录 files = os.listdir(path) # 读取文件夹目录 allresult = [] # 定义空列表 for file in files: # 遍历文件夹 position = path +.

weixin_46361294的博客 3459

python基础

分享pyhton笔记

hanjinming110的博客 3181

字符串查找替换全攻略:从基础算法到跨语言实战与性能优化

字符串处理是计算机科学和软件工程中的基础且核心的技术概念,它涉及对字符序列的存储、检索和修改。其原理基于字符串的不可变性与可变性设计,以及查找算法(如顺序查找、二分查找、索引查找和KMP等模式匹配算法)与替换操作(查找-重建组合)的底层实现。掌握高效的字符串操作技术具有重要价值,能显著提升数据清洗、模板渲染、协议解析和系统间数据交换的效率和安全性。在应用场景上,无论是日常的文本编辑、日志分析,还是复杂的数据预处理和ETL流程,都离不开稳健的字符串查找与替换。本文聚焦于**正则表达式**和**性能优化**等关

weixin_33894640的博客 297

拷贝和正则表达式

正则表达式的基本使用,还有浅拷贝和深拷贝的区别

qq_44801344的博客 507

python判断含有某字符串的文件

输入某一文件夹(如‘'H:\\temp'’)和字符串(如‘Bmi’),将会输出该文件夹内含有该字符串的所有文件名程

python 遍历文件夹,用正则表达式字符串匹配找出符合要求的文件/文件夹、拷贝文件

找出文件名具有一定格式的文件: import os import re path = "/root" targetDir='/root/result' def getfilelist(strn): names=[] for dirpath, dirnames, filenames in os.walk(path): for filepath in file...

qq_36881881的博客 6233

python按行读取文件并找出其中指定字符串

主要介绍了python按行读取文件并找出其中指定字符串的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

使用python实现正则匹配检索远端FTP目录下的文件

主要介绍了使用python实现正则匹配检索远端FTP目录下的文件的方法,非常的简单实用,需要的小伙伴参考下

Python从csd文件中找到png引用

正则匹配Path=并拷贝匹配图片到新目录 #!/usr/bin/python # -*- coding: utf-8 -*- import re import os import importlib,sys import shutil importlib.reload(sys) # sys.setdefaultencoding('utf8') print (sys.getdefaultencod...

在代码身上,用心去飞翔 488

定时移动鼠标点击鼠标,防止电脑息屏的vba脚本

定时移动鼠标,使系统始终处于激活状态,防止系统息屏。

panfei263031的博客 5927

Python3 自动扫描匹配文件并复制

import os import re import shutil """ 使用方法: 在主函数中输入以下内容,则会在目标文件夹中根据自定义关键字匹配出匹配文件,并复制到指定文件夹(注意使用r元字符) 1.输入需要扫描的驱动器或者分区 2.输入需要匹配的文件规则,正则表达式规则 3.输入存放文件的目的文件夹 """ def file_scanner(your_pat...

范枝洲的博客 699

用电脑通过网口控制keysight示波器

Keysight HD304MSO示波器提供1GHz带宽、14位高精度ADC及10.1英寸触控屏,支持50μV低噪声信号捕获和1.3M波形/秒刷新率。配备4通道探头、逻辑分析仪接口及100Mpts存储深度,含故障诊断、FFT等高级功能。通过网线连接电脑安装TightVNC软件(示波器IP为169.254.163.24)可实现远程控制,相比U盘传输更高效。(149字)

johnboat的专栏 1133

ASReview:基于主动学习的AI文献筛选工具,提升科研效率

主动学习是机器学习的一个重要分支,其核心原理是让算法能够主动选择最有价值的数据进行标注,从而以更低的成本获得更好的模型性能。这一技术通过人机协作的闭环流程,显著提升了数据标注和模型训练的效率和精度。在工程实践中,主动学习尤其适用于数据标注成本高昂或数据类别不平衡的场景,例如医学影像分析、自然语言处理中的文本分类以及推荐系统的冷启动问题。通过优先标注模型最不确定的样本,它能够有效解决传统机器学习面临的冷启动和数据稀疏性挑战。本文聚焦的ASReview项目,正是将主动学习原理应用于系统文献综述这一具体场景,通过

weixin_28725959的博客 430

批量删除文件夹名称关键字:批处理、PowerShell 与 Python 三方案详解

批量重命名是文件整理与数据管理中的高频需求,尤其当文件夹名称里混入 _old、_bak、副本等冗余关键字时,手动修改既低效又易出错。Windows 资源管理器内置的批量重命名仅支持统一模板与自动编号,无法实现真正意义上的查找替换,而理解批处理、PowerShell 与 Python 的脚本逻辑,则能稳定解决此类问题。其核心原理在于遍历目录并利用变量替换或正则表达式匹配目标关键字,再通过重命名命令完成修改。掌握这一技术不仅能提升文件管理效率,还能避免第三方工具带来的安全风险,广泛适用于资料归档、项目交付与测试

weixin_34344403的博客 895

张正友标定法-MATLAB实验

该方法最早由微软研究院的Zhengyou Zhang教授提出,1998年发表在IEEE TRANSACTIONS ON PATTERNANALYSIS AND MACHINE INTELLIGENCE,论文题目为:AFlexible New Technique for Camera Calibration。 (一)标定平面到图像平面的单应性 单应性(homography):在计算机视觉中被定义

qq_37845624的博客 8288

python basic2

# () 分组 email = r"\w{3}@\w+(\.com|\.cn|\.org)" re.match(email, "zzz@scut.com") re.match(email, "zzz@scut.cn") re.match(email, "zzz@scut.org") 六、包与模块 1.模块module Python中每一个.py脚本定义一个模块,所

心系旭阳 672

FreeSWITCH编译安装详细文档

本文档详细介绍了在Ubuntu 22.04系统上从源码编译安装FreeSWITCH的完整流程。主要内容包括:1)系统环境准备和依赖库安装;2)关键依赖库spandsp和sofia-sip的编译安装;3)FreeSWITCH源码的特定版本(v1.6.0)编译配置,包括禁用SignalWire模块的配置方法;4)系统服务配置,包括创建专用用户、设置权限以及配置systemd服务文件。文档特别提供了版本控制说明,确保后期能切换到相同的版本环境,并附有详细的命令操作步骤和注意事项。

唯有代码让我痴狂 1369

LangGraph实战:用Python异步构建智能客服多轮对话系统(附完整代码)

本文详细介绍了如何使用LangGraph框架和Python异步编程构建一个高性能的智能客服多轮对话系统。通过将对话流程建模为有向图,结合thread_id实现多用户对话隔离,并利用异步节点提升系统并发处理能力,有效解决了传统客服系统上下文遗忘与高并发瓶颈问题。文章提供了从环境搭建、状态管理、异步优化到复杂业务逻辑与部署的完整实战代码。

weixin_29055137的博客 149

Python基础学习笔记之(二)

Python基础学习笔记之(二) zouxy09@qq.com http://blog.youkuaiyun.com/zouxy09 六、包与模块 1、模块module Python中每一个.py脚本定义一个模块,所以我们可以在一个.py脚本中定义一个实现某个功能的函数或...

chuifuhuo6864的博客 136

第二节_PySide6项目创建流程介绍、手把手教学打包EXE可执行文件

本文详细介绍了如何使用PySide6创建一个带UI界面的Python程序,并将其打包成exe可执行文件。首先,通过Pycharm创建项目,并使用PySide6-Designer工具设计UI界面,将生成的ui文件转换为Python代码。接着,编写主程序,加载UI界面并实现功能,如加载图片、设置图标等。最后,通过资源文件管理图片资源,并确保UI界面的更新能同步到主程序中。整个过程涵盖了项目创建、UI设计、代码编写及资源管理,适合初学者学习如何将Python程序打包为可执行文件。

su桥木的博客 2554

Python爬虫---队列模拟递归遍历(广度遍历)

1.导入re模块:正则 2.导入urllib.request模块:爬虫 3.导入deque模块:双向队列 4.extend():列表末尾一次性追加另一个序列中的多个值 5.findall():相匹配的全部字串,返回形式为数组 6.compile():将一个字符串编译为字节 7.popleft():队列为先进后出,都是添加在列表最前面那个值 import urllib.request...

baihai的博客 1162

25 - GRACE Mascon数据缺失月份数据插值

本篇基于文章的相关内容和文章公开的奇异谱分析(SSA)插值算法程序包,对grace Mascon数据种缺失的月份进行 插值 ,总结了使用程序包的相关过程,可以将该程序应用到其他数据处理插值计算中。

weixin_43339605的博客 1842

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Python基础学习笔记之二

六、包与模块 1、模块module Python中每一个.py脚本定义一个模块,所以我们可以在一个.py脚本中定义一个实现某种功能的函数或者脚本,这样其他的.py脚本就可以条用这个模块了。## package and module #### ## a .py file define a module which can be used in other script ## as a sc

MachineLP的专栏 753

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: 爬虫
下一篇: windows安装filezilla server搭建个人服务站
有多少个小土豆
博客等级 码龄10年 235粉丝 210原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值