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 相关文章推荐
pycharm 使用心得(四)显示行号
Jun 05 Python
python模拟鼠标拖动操作的方法
Mar 11 Python
python实现bucket排序算法实例分析
May 04 Python
在Python中操作字典之fromkeys()方法的使用
May 21 Python
python调用staf自动化框架的方法
Dec 26 Python
Python面向对象程序设计示例小结
Jan 30 Python
在python下使用tensorflow判断是否存在文件夹的实例
Jun 10 Python
pandas.cut具体使用总结
Jun 24 Python
python中while和for的区别总结
Jun 28 Python
Python实现手机号自动判断男女性别(实例解析)
Dec 22 Python
python对数组进行排序,并输出排序后对应的索引值方式
Feb 28 Python
python属于跨平台语言码
Jun 09 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 whois查询API制作方法
2011/06/23 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
JS特权方法定义作用以及与公有方法的区别
2013/03/18 Javascript
Ionic如何创建APP项目
2016/06/03 Javascript
js 定义对象数组(结合)多维数组方法
2016/07/27 Javascript
最全面的百度地图JavaScript离线版开发
2016/09/10 Javascript
js处理层级数据结构的方法小结
2017/01/17 Javascript
Express + Session 实现登录验证功能
2017/09/08 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
python list使用示例 list中找连续的数字
2014/01/27 Python
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
python机器学习之贝叶斯分类
2018/03/26 Python
Python打包方法Pyinstaller的使用
2018/10/09 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
2018/12/27 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
tensorflow 初始化未初始化的变量实例
2020/02/06 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
css3让div随鼠标移动而抖动起来
2014/02/10 HTML / CSS
皮肤科医师岗位职责
2013/12/04 职场文书
高中校园广播稿
2014/01/11 职场文书
项目合作意向书范本
2014/04/01 职场文书
初中生操行评语大全
2014/04/24 职场文书
商务经理岗位职责
2014/08/03 职场文书
股东授权委托书
2014/10/15 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
历史博物馆观后感
2015/06/05 职场文书
寻找成龙观后感
2015/06/12 职场文书
投诉书格式范本
2015/07/02 职场文书
Python requests库参数提交的注意事项总结
2021/03/29 Python
Python 内置函数速查表一览
2021/06/02 Python
Go中的条件语句Switch示例详解
2021/08/23 Golang
mysql中如何用命令创建联合唯一索引
2022/04/20 MySQL