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实现百度关键词排名查询
Mar 30 Python
Python算法之栈(stack)的实现
Aug 18 Python
python itchat实现微信好友头像拼接图的示例代码
Aug 14 Python
python版简单工厂模式
Oct 16 Python
python实现冒泡排序算法的两种方法
Mar 10 Python
python使用tensorflow深度学习识别验证码
Apr 03 Python
利用Python读取txt文档的方法讲解
Jun 23 Python
PyQt5实现五子棋游戏(人机对弈)
Mar 24 Python
python利用多种方式来统计词频(单词个数)
May 27 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
Aug 23 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
Aug 31 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
May 26 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
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
PHP多文件上传类实例
2015/03/07 PHP
THINKPHP支持YAML配置文件的设置方法
2015/03/17 PHP
PHP 生成微信红包代码简单
2016/03/25 PHP
Django 标签筛选的实现代码(一对多、多对多)
2018/09/05 PHP
Laravel修改验证提示信息为中文的示例
2019/10/23 PHP
用于table内容排序
2006/07/21 Javascript
Jquery index()方法 获取相应元素索引值
2012/10/12 Javascript
JSON语法五大要素图文介绍
2012/12/04 Javascript
jquery应该如何来设置改变按钮input的onclick事件
2012/12/10 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
使用js 设置url参数
2013/07/08 Javascript
解析URI与URL之间的区别与联系
2013/11/22 Javascript
JS实现一个列表中包含上移下移删除等功能
2014/09/24 Javascript
JavaScript实现添加、查找、删除元素
2015/07/02 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
angularjs 源码解析之injector
2016/08/22 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
2016/12/20 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
浅谈webpack SplitChunksPlugin实用指南
2018/09/17 Javascript
详解vue v-model
2020/08/31 Javascript
[04:10]2018年度CS GO玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
2018/12/13 Python
python中 * 的用法详解
2019/07/10 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
2019/08/24 Python
Python计算机视觉里的IOU计算实例
2020/01/17 Python
使用tensorflow根据输入更改tensor shape
2020/06/23 Python
安康杯竞赛活动总结
2014/05/05 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
汽车转让协议书
2015/01/29 职场文书
2015年幼儿园学期工作总结
2015/05/22 职场文书
签证工作证明模板
2015/06/15 职场文书
goland 恢复已更改文件的操作
2021/04/28 Golang