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中使用logging模块代替print(logging简明指南)
Jul 09 Python
python海龟绘图实例教程
Jul 24 Python
python中函数总结之装饰器闭包详解
Jun 12 Python
使用python 爬虫抓站的一些技巧总结
Jan 10 Python
对Python中DataFrame按照行遍历的方法
Apr 08 Python
Python实现图片拼接的代码
Jul 02 Python
Python爬取个人微信朋友信息操作示例
Aug 03 Python
Python连接Mssql基础教程之Python库pymssql
Sep 16 Python
pandas基于时间序列的固定时间间隔求均值的方法
Jul 04 Python
基于sklearn实现Bagging算法(python)
Jul 11 Python
Python实现的远程文件自动打包并下载功能示例
Jul 12 Python
Jupyter Notebook 如何修改字体和大小以及更改字体样式
Jun 03 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
php强制下载类型的实现代码
2011/04/21 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
2011/11/02 PHP
orm获取关联表里的属性值
2016/04/17 PHP
完美利用Yii2微信后台开发的系列总结
2016/07/18 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
Laravel 自定命令以及生成文件的例子
2019/10/23 PHP
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
2008/09/25 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
如何让浏览器支持jquery ajax load 前进、后退功能
2014/06/12 Javascript
加载列表时jquery获取ul中第一个li的属性
2014/11/02 Javascript
基于javascript的COOkie的操作实现只能点一次
2014/12/26 Javascript
jQuery插件Tmpl的简单使用方法
2015/04/27 Javascript
BootStrap glyphicon图标无法显示的解决方法
2016/09/06 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
基于JavaScript实现五子棋游戏
2020/08/26 Javascript
JS+HTML+CSS实现轮播效果
2017/11/28 Javascript
Angular实现的日程表功能【可添加及隐藏显示内容】
2017/12/27 Javascript
详解PHP后期静态绑定分析与应用
2018/03/21 Javascript
vue cli使用融云实现聊天功能的实例代码
2019/04/19 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
javascript实现视频弹幕效果(两个版本)
2019/11/28 Javascript
Python排序搜索基本算法之堆排序实例详解
2017/12/08 Python
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
django drf框架自带的路由及最简化的视图
2019/09/10 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
Python常用模块sys,os,time,random功能与用法实例分析
2020/01/07 Python
Myprotein比利时官方网站:欧洲第一运动营养品牌
2020/10/04 全球购物
村官工作鉴定评语
2014/01/27 职场文书
运动会广播稿500字
2014/01/28 职场文书
护理助产毕业生的求职信
2014/03/02 职场文书
旅游饭店管理专业自荐书
2014/06/28 职场文书
2014第二批党的群众路线教育实践活动对照检查材料思想汇报
2014/09/18 职场文书
领导班子整改措施
2014/10/24 职场文书
2015年手术室工作总结
2015/05/11 职场文书
2015小学教师年度考核工作总结
2015/05/12 职场文书