2013-05-14 167 views
0

我正在用python編寫一個腳本來將不同文件夾中的圖像合併到一個文件夾中。可能存在多個具有相同名稱的圖像文件。如何在python中處理這個問題?我需要像這樣將它們重命名爲「image_name_0001」,「image_name_0002」。如何在複製文件時將文件複製到python文件夾中

+0

你的問題是什麼函數用於重命名或如何生成專有名稱? – 2013-05-14 15:23:11

回答

2

您可以保留一個dict到目前爲止已經看到的名稱數,然後使用os.rename()將文件重命名爲這個新名稱。

例如:

dic = {} 
list_of_files = ["a","a","b","c","b","d","a"] 
for f in list_of_files: 
    if f in dic: 
     dic[f] += 1 
     new_name = "{0}_{1:03d}".format(f,dic[f]) 
     print new_name 
    else: 
     dic[f] = 0 
     print f 

輸出:

a 
a_001 
b 
c 
b_001 
d 
a_002 
+0

這有助於我做一次。但是因爲我需要做很多次,所以dic = {}會使它每次都爲零。那麼任何替代方案 – Sudhi1509 2013-06-13 10:27:56

+0

@ Sudhi1509你是什麼意思我的「做很多次」? 'dic = {}'應該在頂部(在循環之前)。 – 2013-06-13 10:38:15

0

如果有根的文件名,即名稱= 'IMAGE_NAME',延伸,延長=名爲.jpg和路徑到輸出文件夾,路徑,你可以這樣做:

*for each file*: 
    moved = 0 
    num = 0 
    if os.path.exists(path + name + ext): 
     while moved == 0: 
      num++ 
      modifier = '_00'+str(num) 
      if not os.path.exists(path + name + modifier + extension): 
       *MOVE FILE HERE using (path + name + modifier + extension)* 
       moved = 1 
    else: 
     *MOVE FILE HERE using (path + name + ext)* 

有obvio在這裏有幾個僞代碼,但你應該得到的主意

相關問題