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 Web框架Flask中使用百度云存储BCS实例
Feb 08 Python
Ubuntu下安装PyV8
Mar 13 Python
Python做文本按行去重的实现方法
Oct 19 Python
python3.6连接MySQL和表的创建与删除实例代码
Dec 28 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
May 24 Python
Python基于最小二乘法实现曲线拟合示例
Jun 14 Python
python调用百度语音REST API
Aug 30 Python
python os模块简单应用示例
May 23 Python
Python 转换文本编码实现解析
Aug 27 Python
python rsync服务器之间文件夹同步脚本
Aug 29 Python
python实现高斯判别分析算法的例子
Dec 09 Python
Pycharm和Idea支持的vim插件的方法
Feb 21 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设计模式 Chain Of Responsibility (职责链模式)
2011/06/26 PHP
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
3种方法轻松处理php开发中emoji表情的问题
2016/07/18 PHP
php实现URL加密解密的方法
2016/11/17 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
javascript 放大镜效果js组件 qsoft.PopBigImage.v0.35 加入了chrome支持
2009/04/07 Javascript
浅谈关于JavaScript的语言特性分析
2013/04/11 Javascript
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
jQuery动画效果图片轮播特效
2016/01/12 Javascript
基于JavaScript实现 网页切出 网站title变化代码
2016/04/03 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
2017/04/21 Javascript
webpack 2.x配置reactjs基本开发环境详解
2017/08/08 Javascript
浅析vue-router原理
2018/10/19 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
微信小程序图片自适应实现解析
2020/01/21 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
Python实现的HTTP并发测试完整示例
2020/04/23 Python
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
Python单例模式的两种实现方法
2017/08/14 Python
Python中单、双下划线的区别总结
2017/12/01 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
2018/12/19 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
Python如何通过Flask-Mail发送电子邮件
2020/01/29 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
python神经网络编程实现手写数字识别
2020/05/27 Python
基于Python爬虫采集天气网实时信息
2020/06/05 Python
Python实现扫码工具的示例代码
2020/10/09 Python
python request 模块详细介绍
2020/11/10 Python
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
成功经营餐厅的创业计划书范文
2013/12/26 职场文书
在校硕士自我鉴定
2014/01/23 职场文书
民事授权委托书范文
2014/08/02 职场文书
2014年教师教学工作总结
2014/11/08 职场文书
庆元旦主持词
2015/07/06 职场文书
党员公开承诺书2016
2016/03/24 职场文书