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的Django REST框架中的序列化及请求和返回
Apr 11 Python
Python实现求笛卡尔乘积的方法
Sep 16 Python
VTK与Python实现机械臂三维模型可视化详解
Dec 13 Python
windows 下python+numpy安装实用教程
Dec 23 Python
解决python3 urllib 链接中有中文的问题
Jul 16 Python
python多线程http压力测试脚本
Jun 25 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
Jul 06 Python
selenium2.0中常用的python函数汇总
Aug 05 Python
浅谈ROC曲线的最佳阈值如何选取
Feb 28 Python
在Matplotlib图中插入LaTex公式实例
Apr 17 Python
python中scrapy处理项目数据的实例分析
Nov 22 Python
python实现一个简单的贪吃蛇游戏附代码
Jun 28 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的一个登录的类 [推荐]
2007/03/16 PHP
php下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
PHP设计模式之命令模式的深入解析
2013/06/13 PHP
php中require和require_once的区别说明
2014/02/27 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
让mayfish支持mysqli数据库驱动的实现方法
2010/05/22 Javascript
在JavaScript中获取请求的URL参数[正则]
2010/12/25 Javascript
JavaScript实现表格排序方法
2013/06/14 Javascript
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
多种方法实现360浏览器下禁止自动填写用户名密码
2014/06/16 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
BootStrap制作导航条实例代码
2016/05/06 Javascript
全面了解javascript中的错误处理机制
2016/07/18 Javascript
微信小程序之拖拽排序(代码分享)
2017/01/21 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
详解VUE 数组更新
2017/12/16 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
Python中atexit模块的基本使用示例
2015/07/08 Python
Python正则表达式经典入门教程
2017/05/22 Python
python Pandas 读取txt表格的实例
2018/04/29 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
pytorch sampler对数据进行采样的实现
2019/12/31 Python
Django数据库操作之save与update的使用
2020/04/01 Python
python中return不返回值的问题解析
2020/07/22 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
NBA欧洲商店(法国):NBA Europe Store FR
2016/10/19 全球购物
北承题目(C++)
2012/05/16 面试题
JVM是一个编译程序还是解释程序
2012/09/11 面试题
总经理助理职责
2014/02/04 职场文书
2014年司机工作总结
2014/11/21 职场文书
优秀教师单行材料
2014/12/16 职场文书
小学中队长竞选稿
2015/11/20 职场文书
《兰兰过桥》教学反思
2016/02/20 职场文书