Python文件名匹配与文件复制的实现


Posted in Python onDecember 11, 2020

文件名的匹配,实际上就是相当于获取文件名(不含后缀),然后利用获取到的文件名到另外一个文件夹中去寻找对应的文件,然后将文件取出,放置到指定文件夹下.概括的来说,分三个步骤:一是取出遍历目录A,得到各个文件文件名;二是利用该文件名,与指定路径B拼接,并加上后缀,产生目标文件名;三是根据拼接产生的目标文件名,将相应文件复制到指定目录C.

好,那么我们开始写代码吧~~~

step1:获取指定目录A下面的所有文件名.不包含文件后缀.主要基于以下思想:

def GetFileNameAndExt(filename):
 import os
 (filepath,tempfilename) = os.path.split(filename);
 (shotname,extension) = os.path.splitext(tempfilename);
 return shotname,extension

测试代码

print(GetFileNameAndExt('c:\3water\index.html'))

返回结果:

('index', '.html')

实际代码如下

#coding=utf-8
import os
import os.path
def GetFileNameAndExt(filename):
 (filepath,tempfilename) = os.path.split(filename);
 (shotname,extension) = os.path.splitext(tempfilename);
 return shotname,extension
 
source_dir='/home/nvidia/xmlReader/circle'
label_dir='/home/nvidia/xmlReader/label'
annotion_dir='/home/nvidia/xmlReader/annocation'
 
##1.将指定A目录下的文件名取出,并将文件名文本和文件后缀拆分出来
img=os.listdir(source_dir) #得到文件夹下所有文件名称
s=[]
for fileNum in img: #遍历文件夹
 if not os.path.isdir(fileNum): #判断是否是文件夹,不是文件夹才打开
  print fileNum #打印出文件名
  imgname= os.path.join(source_dir,fileNum)
  print imgname #打印出文件路径
  (imgpath,tempimgname) = os.path.split(imgname); #将路径与文件名分开
  (shotname,extension) = os.path.splitext(tempimgname); #将文件名文本与文件后缀分开
 print shotname,extension
 print '~~~~'

step2:二是利用该文件名,与指定路径B拼接,并加上后缀,产生目标文件名

##2.将取出来的文件名文本与特定后缀拼接,在于路径拼接,得到B目录下的文件
 xmlname=os.path.join(label_dir,shotname,'.xml')
 print xmlname

但是得到的输出是有分隔符的.

Python文件名匹配与文件复制的实现

如何去掉分隔符呢?或者说如何拼接文件名文本和后缀呢? 基于以下Python基础

'%d.txt'%fname

这样基本上可以表示比如120.txt这样的字符串了。

代码如下:

##2.将取出来的文件名文本与特定后缀拼接,在于路径拼接,得到B目录下的文件 
 tempxmlname='%s.xml'%shotname 
 xmlname=os.path.join(label_dir,tempxmlname)
 print xmlname

我们来看看输出:

Python文件名匹配与文件复制的实现

大功告成,现在我们得到了想要的数据格式,开始到这个指定的路径去寻找文件匹配文件名了~~~~

step3:定位到目标文件名,将其复制到指定目录下,保持文件名不变.(Python文件复制)

##3.根据得到的xml文件名,将对应文件拷贝到指定目录C

shutil.copy(xmlname,annotion_dir)

这样,与图片相关的标注文件就全部拷贝过来了~~~

Python文件名匹配与文件复制的实现

最后,我们来看看我们最终的代码:

#coding=utf-8
import os
import os.path
import shutil #Python文件复制相应模块
 
def GetFileNameAndExt(filename):
 (filepath,tempfilename) = os.path.split(filename);
 (shotname,extension) = os.path.splitext(tempfilename);
 return shotname,extension
 
source_dir='/home/nvidia/xmlReader/circle'
label_dir='/home/nvidia/xmlReader/label'
annotion_dir='/home/nvidia/xmlReader/annocation'
 
##1.将指定A目录下的文件名取出,并将文件名文本和文件后缀拆分出来
img=os.listdir(source_dir) #得到文件夹下所有文件名称
s=[]
for fileNum in img: #遍历文件夹
 if not os.path.isdir(fileNum): #判断是否是文件夹,不是文件夹才打开
  print fileNum #打印出文件名
  imgname= os.path.join(source_dir,fileNum)
  print imgname #打印出文件路径
  (imgpath,tempimgname) = os.path.split(imgname); #将路径与文件名分开
  (shotname,extension) = os.path.splitext(tempimgname); #将文件名文本与文件后缀分开
 print shotname,extension
 print '~~~~'
##2.将取出来的文件名文本与特定后缀拼接,再与路径B拼接,得到B目录下的文件 
 tempxmlname='%s.xml'%shotname 
 xmlname=os.path.join(label_dir,tempxmlname)
 print xmlname
##3.根据得到的xml文件名,将对应文件拷贝到指定目录C
 shutil.copy(xmlname,annotion_dir)

至此,大功告成!

Python文件名匹配与文件复制的实现

以上这篇Python文件名匹配与文件复制的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用正则匹配实现抓图代码分享
Apr 02 Python
python中的计时器timeit的使用方法
Oct 20 Python
基于python代码实现简易滤除数字的方法
Jul 17 Python
漂亮的Django Markdown富文本app插件的实现
Jan 02 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
Mar 23 Python
python3实现猜数字游戏
Dec 07 Python
django最快程序开发流程详解
Jul 19 Python
python自动发微信监控报警
Sep 06 Python
Python笔记之代理模式
Nov 20 Python
python使用opencv在Windows下调用摄像头实现解析
Nov 26 Python
简单了解django处理跨域请求最佳解决方案
Mar 25 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
Feb 22 Python
Python: glob匹配文件的操作
Dec 11 #Python
Python Socket多线程并发原理及实现
Dec 11 #Python
python 实现Harris角点检测算法
Dec 11 #Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
Dec 11 #Python
Python3 用matplotlib绘制sigmoid函数的案例
Dec 11 #Python
python 基于opencv 实现一个鼠标绘图小程序
Dec 11 #Python
Python 用__new__方法实现单例的操作
Dec 11 #Python
You might like
晶体管单管来复再生式收音机
2021/03/02 无线电
PHP中动态显示签名和ip原理
2007/03/28 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
2016/03/19 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
2016/04/01 PHP
PHP使用ActiveMQ实现消息队列的方法详解
2019/05/31 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
基于jquery的获取浏览器窗口大小的代码
2011/03/28 Javascript
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
2014/05/05 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
2015/03/18 Javascript
javascript制作幻灯片(360度全景图片)
2015/07/28 Javascript
JS正则替换掉小括号及内容的方法
2016/11/29 Javascript
VUE实现表单元素双向绑定(总结)
2017/08/08 Javascript
js中this对象用法分析
2018/01/05 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
node+koa2+mysql+bootstrap搭建一个前端论坛
2018/05/06 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
2019/02/26 Javascript
基于 jQuery 实现键盘事件监听控件
2019/04/04 jQuery
微信小程序实现菜单左右联动
2020/05/19 Javascript
Python的Flask框架中配置多个子域名的方法讲解
2016/06/07 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
2019/08/01 Python
Python下载网易云歌单歌曲的示例代码
2020/08/12 Python
使用HTML5 Canvas绘制圆角矩形及相关的一些应用举例
2016/03/22 HTML / CSS
澳大利亚礼品卡商店:Gift Card Store
2019/06/24 全球购物
巴西香水和化妆品购物网站:The Beauty Box
2019/09/03 全球购物
Python面试题:Python里面如何生成随机数
2015/03/12 面试题
班主任班级寄语大全
2014/04/04 职场文书
促销活动总结怎么写
2014/06/25 职场文书
2014年学生会干事工作总结
2014/11/07 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书