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怎么学好python?
Oct 07 Python
Python THREADING模块中的JOIN()方法深入理解
Feb 18 Python
Python中类型检查的详细介绍
Feb 13 Python
python实现TF-IDF算法解析
Jan 02 Python
用python处理图片之打开\显示\保存图像的方法
May 04 Python
对TensorFlow中的variables_to_restore函数详解
Jul 30 Python
Python实现查找二叉搜索树第k大的节点功能示例
Jan 24 Python
pytorch的batch normalize使用详解
Jan 15 Python
python实现微信打飞机游戏
Mar 24 Python
pycharm中使用request和Pytest进行接口测试的方法
Jul 31 Python
python 三边测量定位的实现代码
Apr 22 Python
基于Python实现的购物商城管理系统
Apr 27 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
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
PHP内置的Math函数效率测试
2014/12/01 PHP
Zend Framework分发器用法示例
2016/12/11 PHP
PHP代码重构方法漫谈
2018/04/17 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
PHP join()函数用法与实例讲解
2019/03/11 PHP
向fckeditor编辑器插入指定代码的方法
2007/05/25 Javascript
写js时遇到的一些小问题
2010/12/06 Javascript
JS动态修改表格cellPadding和cellSpacing的方法
2015/03/31 Javascript
JavaScript基本数据类型及值类型和引用类型
2015/08/25 Javascript
12个非常实用的JavaScript小技巧【推荐】
2016/05/18 Javascript
node.js 动态执行脚本
2016/06/02 Javascript
轻松5句话解决JavaScript的作用域
2016/07/15 Javascript
JQuery常用选择器功能与用法实例分析
2019/12/23 jQuery
微信小程序 button样式设置为图片的方法
2020/06/19 Javascript
你应该知道的python列表去重方法
2017/01/17 Python
Python RabbitMQ消息队列实现rpc
2018/05/30 Python
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
python生成密码字典的方法
2018/07/06 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
Python实现扫码工具的示例代码
2020/10/09 Python
美国批发零售网站:GearXS
2016/07/26 全球购物
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
Merchant 1948澳大利亚:新西兰领先的鞋类和靴子供应商
2018/03/24 全球购物
意大利网上书店:LaFeltrinelli
2020/06/12 全球购物
房地产员工找工作的自我评价
2013/11/15 职场文书
高级工程师岗位职责
2013/12/15 职场文书
2014年三万活动总结
2014/04/26 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
怎样写辞职信
2015/02/27 职场文书
慈善募捐倡议书
2015/04/27 职场文书
信息技术教研组工作总结
2015/08/13 职场文书
2016优秀毕业生个人事迹材料
2016/02/29 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
一小时迅速入门Mybatis之bind与多数据源支持 Java API
2021/09/15 Javascript
Python中的 No Module named ***问题及解决
2022/07/23 Python