在同一文件夹中重命名图像(新名称 + 图像大小)时出现问题
Problem while renaming images (new name + image size) in the same folder
这可能是一个简单的问题,但我到处寻找我的问题的答案,却找不到合适的答案。
我想重命名同一个 (!) 文件夹中的多个图像,并将当前图像名称替换为新名称加上添加的图像大小:
例子:
'image_1.jpg' (600x300px) 至 'cat-600x300.jpg'
'image_abc.jpg' (1920x1080px) 至 'cat-1920x1080.jpg'
不幸的是,我的代码产生了以下错误。
PermissionError:[WinError 32] 进程无法访问该文件,因为它正被另一个进程使用:
代码:
from os import listdir
from PIL import Image
newname = "newimage_name" # this will be the new image name across all images in the same folder.
for oldfilename in os.listdir():
im = Image.open(oldfilename)
w, h = im.size
file_name, file_ext = oldfilename.split('.')
new_name = '{}-{}x{}.{}'.format(newname, w,h, file_ext)
os.rename(oldfilename, new_name)
可能是因为您正在打开文件以获取其属性,而当文件打开时您正在请求 os 重命名文件。
您可以尝试在使用 im.close()
重命名文件之前 closing 文件。
from os import listdir
from PIL import Image
newname = "newimage_name" # this will be the new image name across all images in the same folder.
for oldfilename in os.listdir():
im = Image.open(oldfilename)
w, h = im.size
file_name, file_ext = oldfilename.split('.')
new_name = '{}-{}x{}.{}'.format(newname, w,h, file_ext)
#CLOSE THE FILE
im.close()
os.rename(oldfilename, new_name)
这可能是一个简单的问题,但我到处寻找我的问题的答案,却找不到合适的答案。
我想重命名同一个 (!) 文件夹中的多个图像,并将当前图像名称替换为新名称加上添加的图像大小:
例子: 'image_1.jpg' (600x300px) 至 'cat-600x300.jpg' 'image_abc.jpg' (1920x1080px) 至 'cat-1920x1080.jpg'
不幸的是,我的代码产生了以下错误。 PermissionError:[WinError 32] 进程无法访问该文件,因为它正被另一个进程使用:
代码:
from os import listdir
from PIL import Image
newname = "newimage_name" # this will be the new image name across all images in the same folder.
for oldfilename in os.listdir():
im = Image.open(oldfilename)
w, h = im.size
file_name, file_ext = oldfilename.split('.')
new_name = '{}-{}x{}.{}'.format(newname, w,h, file_ext)
os.rename(oldfilename, new_name)
可能是因为您正在打开文件以获取其属性,而当文件打开时您正在请求 os 重命名文件。
您可以尝试在使用 im.close()
重命名文件之前 closing 文件。
from os import listdir
from PIL import Image
newname = "newimage_name" # this will be the new image name across all images in the same folder.
for oldfilename in os.listdir():
im = Image.open(oldfilename)
w, h = im.size
file_name, file_ext = oldfilename.split('.')
new_name = '{}-{}x{}.{}'.format(newname, w,h, file_ext)
#CLOSE THE FILE
im.close()
os.rename(oldfilename, new_name)