利用Python怎么对文件名进行匹配

  介绍

这篇文章给大家介绍利用Python怎么对文件名进行匹配,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

文件名的匹配,实际上就是相当于获取文件名(不含后缀),然后利用获取到的文件名到另外一个文件夹中去寻找对应的文件,然后将文件取出,放置到指定文件夹下。概括的来说,分三个步骤:一是取出遍历目录,得到各个文件文件名;二是利用该文件名,与指定路径B拼接,并加上后缀,产生目标文件名;三是根据拼接产生的目标文件名,将相应文件复制到指定目录c .

步骤1:获取指定目录一个下面的所有文件名。不包含文件后缀。主要基于以下思想:

def  GetFileNameAndExt(文件名):   import 操作系统   ,(filepath tempfilename)=, os.path.split(文件名);   ,(shotname,扩展)=,os.path.splitext (tempfilename);   ,return  shotname扩展

测试代码

打印(GetFileNameAndExt (& # 39; c: \ jb51 \ index . html # 39;))

返回结果:

<代码>(& # 39;指数# 39;& # 39;. html # 39;)

实际代码如下

#=utf - 8编码   import 操作系统   import  os.path   def  GetFileNameAndExt(文件名):   ,(filepath tempfilename)=, os.path.split(文件名);   ,(shotname,扩展)=,os.path.splitext (tempfilename);   return  shotname、扩展   ,   source_dir=& # 39;/home/xmlReader nvidia//圆# 39;   label_dir=& # 39;/home/xmlReader nvidia//标签# 39;   annotion_dir=& # 39;/home/xmlReader nvidia//annocation& # 39;   ,   # # 1。将指定一个目录下的文件名取出,并将文件名文本和文件后缀拆分出来   img=os.listdir (source_dir), #得到文件夹下所有文件名称   s=[]   for  fileNum  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,才能扩展),=,os.path.splitext (tempimgname);, #将文件名文本与文件后缀分开   print  shotname、扩展   ,print  & # 39; ~ ~ ~ ~ & # 39;

步骤2:二是利用该文件名,与指定路径B拼接,并加上后缀,产生目标文件名

# # 2。将取出来的文件名文本与特定后缀拼接,在于路径拼接,得到B目录下的文件   ,xmlname=os.path.join (label_dir、shotname & # 39; xml # 39;)   以前,print  xmlname

但是得到的输出是有分隔符的。

利用Python怎么对文件名进行匹配

如何去掉分隔符呢?或者说如何拼接文件名文本和后缀呢?基于以下Python基础

<代码> & # 39;% d.txt& # 39; %帧

这样基本上可以表示比如120。txt这样的字符串了。

代码如下:

# # 2。将取出来的文件名文本与特定后缀拼接,在于路径拼接,得到B目录下的文件,   ,tempxmlname=& # 39; % s.xml& # 39; % shotname    ,xmlname=os.path.join (label_dir tempxmlname)   以前,print  xmlname

我们来看看输出:

利用Python怎么对文件名进行匹配

大功告成,现在我们得到了想要的数据格式,开始到这个指定的路径去寻找文件匹配文件名了~ ~ ~ ~

步骤3:定位到目标文件名,将其复制到指定目录下,保持文件名不变。(Python文件复制)

# # 3。根据得到的xml文件名,将对应文件拷贝到指定目录C

shutil.copy (xmlname annotion_dir)

这样,与图片相关的标注文件就全部拷贝过来了~ ~ ~

利用Python怎么对文件名进行匹配

最后,我们来看看我们最终的代码:

#=utf - 8编码   import 操作系统   import  os.path   import  shutil  # Python文件复制相应模块   ,   def  GetFileNameAndExt(文件名):   ,(filepath tempfilename)=, os.path.split(文件名);   ,(shotname,扩展)=,os.path.splitext (tempfilename);   return  shotname、扩展   ,   source_dir=& # 39;/home/xmlReader nvidia//圆# 39;   label_dir=& # 39;/home/xmlReader nvidia//标签# 39;   annotion_dir=& # 39;/home/xmlReader nvidia//annocation& # 39;   ,   # # 1。将指定一个目录下的文件名取出,并将文件名文本和文件后缀拆分出来   img=os.listdir (source_dir), #得到文件夹下所有文件名称   s=[]   for  fileNum  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,才能扩展),=,os.path.splitext (tempimgname);, #将文件名文本与文件后缀分开   print  shotname、扩展   ,print  & # 39; ~ ~ ~ ~ & # 39;   # # 2。将取出来的文件名文本与特定后缀拼接,再与路径B拼接,得到B目录下的文件,   ,tempxmlname=& # 39; % s.xml& # 39; % shotname    ,xmlname=os.path.join (label_dir tempxmlname)   print  xmlname   # # 3。根据得到的xml文件名,将对应文件拷贝到指定目录C   ,shutil.copy (xmlname annotion_dir)

利用Python怎么对文件名进行匹配