1. 程式人生 > 程式設計 >Python檔名匹配與檔案複製的實現

Python檔名匹配與檔案複製的實現

檔名的匹配,實際上就是相當於獲取檔名(不含字尾),然後利用獲取到的檔名到另外一個資料夾中去尋找對應的檔案,然後將檔案取出,放置到指定資料夾下.概括的來說,分三個步驟:一是取出遍歷目錄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:\jb51\index.html'))

返回結果:

('index','.html')

實際程式碼如下

#coding=utf-8
import os
import os.path
def GetFileNameAndExt(filename):
 (filepath,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,extension
 print '~~~~'
##2.將取出來的檔名文字與特定字尾拼接,再與路徑B拼接,tempxmlname)
 print xmlname
##3.根據得到的xml檔名,將對應檔案拷貝到指定目錄C
 shutil.copy(xmlname,annotion_dir)

至此,大功告成!

Python檔名匹配與檔案複製的實現

以上這篇Python檔名匹配與檔案複製的實現就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。