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爬虫之cookie使用方法
Feb 17 Python
python利用thrift服务读取hbase数据的方法
Dec 27 Python
详解python中@的用法
Mar 27 Python
Django网络框架之HelloDjango项目创建教程
Jun 06 Python
python变量命名的7条建议
Jul 04 Python
flask框架jinja2模板与模板继承实例分析
Aug 01 Python
Django 实现前端图片压缩功能的方法
Aug 07 Python
解决tensorboard多个events文件显示紊乱的问题
Feb 15 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
Jun 02 Python
pandas创建DataFrame的7种方法小结
Jun 14 Python
python 元组和列表的区别
Dec 30 Python
python 闭包函数详细介绍
Apr 19 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初学者头疼问题总结
2006/07/08 PHP
php连接函数implode与分割explode的深入解析
2013/06/26 PHP
Symfony2安装的方法(2种方法)
2016/02/04 PHP
yii2缓存Caching基本用法示例
2016/07/18 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
2012/01/13 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
2012/03/04 Javascript
使用jquery实现IE下按backspace相当于返回操作
2014/03/18 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
使用AngularJS实现表单向导的方法
2015/06/19 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
2016/09/01 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
vue2.0获取自定义属性的值
2017/03/28 Javascript
js实现图片放大展示效果
2017/08/30 Javascript
详解Vue中一种简易路由传参办法
2017/09/15 Javascript
Vue波纹按钮组件制作
2018/04/30 Javascript
js动态引入的四种方法
2018/05/05 Javascript
angular6的table组件开发的实现示例
2018/12/26 Javascript
vue获取data数据改变前后的值方法
2019/11/07 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
python 实时遍历日志文件
2016/04/12 Python
Python学习小技巧总结
2018/06/10 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
2019/04/30 Python
用什么库写 Python 命令行程序(示例代码详解)
2020/02/20 Python
python实现与redis交互操作详解
2020/04/21 Python
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
基于HTML5 Canvas:字符串,路径,背景,图片的详解
2013/05/09 HTML / CSS
HTML5对比HTML4的主要改变和改进总结
2016/05/27 HTML / CSS
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
公务员政审材料范文
2014/12/23 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
Pygame Draw绘图函数的具体使用
2021/11/17 Python
搞笑Gif:这么白这么长的腿像极了一楼的女朋友
2022/03/21 杂记
Python加密技术之RSA加密解密的实现
2022/04/08 Python