2017-08-01 70 views
0

所以簡要說明我有,我把一些圖片到一個文件夾中。圖像的名稱是整數,例如,我可以使用名稱爲567.jpg,568.jpg,569.jpg,570.jpg和571.jpg的5張圖像。整數是隨機的,然而,它們總是以上面的順序出現,即對於每個圖像增加一個。重命名的圖像文件,如果陳述是錯誤的

所以我想要做的就是去通過圖像此文件夾中,並期待在圖像大小。如果圖像的寬度小於600像素(作爲示例),我想刪除此圖像並移至下一張圖像。現在,如果這個圖像在600像素以上,它應該重新命名,例如它遵循序列。

所以原則上應該發生的事情是:

345.jpg - >過600px的 - >什麼也沒有發生 346-JPG - >在600px的 - >被刪除 347.jph - >在600px的 - >獲取更名爲346.jpg(遵循1步序列)

等等......

我試圖用下面的代碼:

import os 
from PIL import Image 

img_dir_path = "\" 

pic_list = range(567,572,1) 

for image in pic_list: 
    img = Image.open("{}/{}.jpg".format(img_dir_path, image)) 
    if img.size[0] < 600: 
     os.remove("{}/{}.jpg".format(img_dir_path, image)) 
    else: 
     if os.path.isfile("{}/{}.jpg".format(img_dir_path, int(image)-1)) == False: 
      os.rename('{}/{}.jpg'.format(img_dir_path, int(image)), '{}/{}.jpg'.format(img_dir_path, int(image)-1)) 
     else: 
      print "No worries" 

但是,這樣做的時候,我得到了如下錯誤:

WindowsError: [Error 32] The process cannot access the file because it is being used by another process 

對於重命名過程,它...

我知道這是一些草率的代碼,但我不是一個Python的專家呢,所以我通常只是先讓它工作,然後再調整。

此外,出現的另一個問題是,檢查是否存在真正的第一項之前進入/是假的時,它始終是假的,因爲現在有,當然是第一張圖像之前什麼都沒有。因此,名單中的名字圖像當然不應該重命名。但是,由於我甚至無法完成這項工作,所以我不打算解決這個問題。

+2

待辦事項關閉其被重命名IMG = Image.open( 「{}/{}。JPG」 之前打開所述圖像.format(img_dir_path,image)) –

+2

重命名之前的Image.close() –

+0

是的,就是這樣。如果你想接受答案,請給出答案:) –

回答

1

執行關閉其被重命名img = Image.open("{}/{}.jpg".format(img_dir_path, image))

Image.close() 

之前打開所述圖像之前重命名