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将文本转换成图片输出的方法
Apr 28 Python
解读python如何实现决策树算法
Oct 11 Python
详解python如何在django中为用户模型添加自定义权限
Oct 15 Python
python:接口间数据传递与调用方法
Dec 17 Python
Python数据报表之Excel操作模块用法分析
Mar 11 Python
python+pyqt5实现图片批量缩放工具
Mar 18 Python
十分钟搞定pandas(入门教程)
Jun 21 Python
Python脚本操作Excel实现批量替换功能
Nov 20 Python
python Shapely使用指南详解
Feb 18 Python
Python3如何在Windows和Linux上打包
Feb 25 Python
Django权限控制的使用
Jan 07 Python
python 高阶函数简单介绍
Feb 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 数组的合并、拆分、区别取值函数集
2010/02/15 PHP
PHP依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
Javascript中的常见排序算法
2007/03/27 Javascript
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
2011/12/20 Javascript
js算法中的排序、数组去重详细概述
2013/10/14 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
2014/06/09 Javascript
3个可以改善用户体验的AngularJS指令介绍
2015/06/18 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
2015/07/17 Javascript
6种javascript显示当前系统时间代码
2015/12/01 Javascript
js如何判断输入字符串长度
2015/12/16 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
2020/11/24 Javascript
nodejs中的异步编程知识点详解
2021/01/17 NodeJs
python网络编程实例简析
2014/09/26 Python
Python selenium如何设置等待时间
2016/09/15 Python
mac下如何将python2.7改为python3
2018/07/13 Python
python3调用百度翻译API实现实时翻译
2018/08/16 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
Python __slots__的使用方法
2020/11/15 Python
html5 CSS过度-webkit-transition使用介绍
2013/07/02 HTML / CSS
澳大利亚优质的家居用品和生活方式公司:Bed Bath N’ Table
2019/04/16 全球购物
莫斯科制造商的廉价皮大衣:Fursk
2020/06/09 全球购物
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
全民健身日活动方案
2014/01/29 职场文书
公司股权转让协议书
2014/04/12 职场文书
工商干部先进事迹
2014/05/14 职场文书
乡镇党员干部群众路线对照检查材料思想汇报
2014/09/28 职场文书
2015国庆节感想
2015/08/04 职场文书
解除租赁合同协议书
2016/03/21 职场文书
2019年大学生暑期社会实践调查报告模板
2019/11/07 职场文书
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers