e_Lap
Commander
- Registriert
- Apr. 2013
- Beiträge
- 2.172
Moin, habe folgendes Script geschrieben:
ich lese Bilder im Ordner _assets ein und speichere deren EXIF Dateien in einer txt Datei.
Das klappt auch alles.
Gerne würde cih die Bilder jetzt nach dem DateTime Tag umbennenen.
Doch hier kriege ich jedesmal:
PermissionError: [WinError 32] Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird: 'C:\\Users\\xx\\PycharmProjects\\Test01\\imagetesting\\_assets\\IMG_3472.jpg' -> 'C:\\Users\\xx\\PycharmProjects\\Test01\\imagetesting\\_assets\\IMG_3472.jpg\\2014-08-20_18-20-07.JPG'
Hat da jemand ne Ahnung?
Danke im Vorraus!
Code:
from PIL import Image
from PIL.ExifTags import TAGS
import os
path = "./_assets/"
file = open("test.txt", 'w', newline="\r\n")
name_offset = "xxx"
file_type_offset = ".JPG"
source = r'.\_assets'
def get_exif(fn):
ret = {}
i = Image.open(fn)
info = i._getexif()
for tag, value in info.items():
decoded = TAGS.get(tag, tag)
ret[decoded] = value
i.close()
return ret
exif_data_list = {}
for img in os.listdir(path):
path2 = r'C:\Users\lnerlich\PycharmProjects\Test01\imagetesting\_assets' + '\\' + img
img_cache = {}
img_cache.update(get_exif(path + img))
if img_cache.get('UserComment'):
del img_cache['UserComment']
if img_cache.get('MakerNote'):
del img_cache['MakerNote']
file.write(img)
file.write("\n")
for keyX, valueX in img_cache.items():
file.write(keyX)
file.write(": ")
file.write(str(valueX))
file.write("\n")
file.write("\n")
exif_data_list.update(img_cache)
datetime = img_cache['DateTime']
datetime_new = datetime.replace(':', '-')
datetime_new = datetime_new.replace(' ', '_')
os.rename(path2, path2 + '\\' + datetime_new + file_type_offset)
file.close()
ich lese Bilder im Ordner _assets ein und speichere deren EXIF Dateien in einer txt Datei.
Das klappt auch alles.
Gerne würde cih die Bilder jetzt nach dem DateTime Tag umbennenen.
Doch hier kriege ich jedesmal:
PermissionError: [WinError 32] Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird: 'C:\\Users\\xx\\PycharmProjects\\Test01\\imagetesting\\_assets\\IMG_3472.jpg' -> 'C:\\Users\\xx\\PycharmProjects\\Test01\\imagetesting\\_assets\\IMG_3472.jpg\\2014-08-20_18-20-07.JPG'
Hat da jemand ne Ahnung?
Danke im Vorraus!
Zuletzt bearbeitet: