2013-01-03 53 views
2

我想重命名Windows目錄中的圖片。相應的文件名應該是這樣的將名稱重新命名爲圖片。 _1對於每一個新的一天

2012-12-01_1 2012-12-01_2 2012-12-02_1 等

一個新的序列必須_1爲每個新的日期開始。我嘗試着用各種可能的方式比較列表元素,但我沒有想到運氣。

我有時間從:

datetime.date.fromtimestamp(os.path.getmtime(os.path.join(target,f))) 
where f= each file 

我創建看起來像這樣的列表: [ 'IMG_0288.JPG', 'IMG_0289.JPG', 'IMG_0290.JPG', 'IMG_0291.JPG' ,'IMG_0292.JPG','IMG_0293.JPG','IMG_0294.JPG','IMG_0295.JPG','IMG_0296.JPG','IMG_0297.JPG','IMG_0298.JPG','IMG_0299.JPG',' IMG_03001.JPG','IMG_0301.JPG','IMG_0302.JPG','IMG_0303.JPG','IMG_0304.JPG','IMG_0305.JPG','IMG_0306.JPG','IMG_0315.JPG','IMG_0323。 JPG','IMG_0324.JPG','IMG_0325.JPG','IMG_0326.JPG','IMG_0327.JPG','IMG_0328.JPG','IMG_0330.JPG','IMG_0331.JPG','IMG_0333.JPG' ,'IMG_0334.JPG','IMG_0335.JPG','IMG_0336.JPG','IMG_0339.JPG','IMG_0340.JPG','IMG_0341.JPG','IMG_0342.JP G」, 'IMG_0343.JPG', 'IMG_0344.JPG']

我試圖比較DIR F [0]和比切DIR [0]之後但是它開始跳過所有其他元素。非常感謝您的幫助

回答

1
import itertools as it 
import datetime 
import os 

get_day = lambda x: datetime.date.fromtimestamp(os.path.getmtime(os.path.join(target,f))) 

for k, v in it.groupby(sorted(files, key=get_day), key=get_day): 
    for i, f in enumerate(v, 1): 
     os.rename(os.path.join(target, f), 
        os.path.join(target, '{0:%Y-%m-%d}_{}.JPG'.format(k, i))) 
+0

HI感謝您的快速解決方案: – user1945009

+0

但K,V在it.groupby(排序(文件,關鍵= get_day),鍵= get_day): NameError:名稱「的文件'未定義 – user1945009

+0

@ user1945009 - 將其替換爲文件列表的變量名稱(或用'os.listdir('。')') – eumiro

相關問題