2013-10-24 25 views
1

我正在使用PEXIF module來讀取和編輯JPEG文件中的EXIF數據。讀取文件的數據後,我想重命名該文件,但此時它被鎖定,並且os.rename()將拋出一個WindowsError如何解鎖由pexif鎖定的文件

import pexif, os 
f = 'oldName.jpg' 
img = pexif.JpegFile.fromFile(f) 
print img.exif.primary.ExtendedEXIF.DateTimeOriginal 
os.rename(f, 'newName.jpg') 

如何解鎖文件?

回答

0

爲什麼不使用fromFd代替:當with塊的範圍結束

f = 'oldName.jpg' 
with open(f, "rb") as fd: 
    img = pexif.JpegFile.fromFd(fd) 
print img.exif.primary.ExtendedEXIF.DateTimeOriginal 
os.rename(f, 'newName.jpg') 

文件句柄將被關閉,所以會重命名工作。

+0

謝謝!不完全是我所要求的,但可能是我應該要求的:) –

+0

是的,我很驚訝來自文件不釋放文件句柄。聽起來像是圖書館裏的一個bug – Aphex

+1

我修補了pexif來正確關閉文件句柄,並在這裏提交了一個pull請求:https://github.com/bennoleslie/pexif/pull/1 - 希望作者接受它。 – Aphex