我编写了一个使用Python Imaging库调整图像大小的脚本。代码工作正常,但脚本也在读取.py脚本文件。我怎么能避免这种情况?
import os
import sys
import PIL
import PIL as pillow
from PIL import Image
from resizeimage import resizeimage
opts, args = getopt.getopt(sys.argv[1:], 'd:w:h:')
filepath = r'C://python27//test'
saved = 'C://python27//test2'
basewidth = 4193
for opt, arg in opts:
if opt == '-d':
filepath = arg
if opt == '-w':
basewidth = int(arg)
if basewidth == -1 or filepath == '':
print('Invalid command line arguments. -d [directory] ' \
'-w [width] are required')
exit()
for image in os.listdir(filepath):
print('Resizing image ' + image)
name,ext = os.path.splitext(image)
if ext.lower() in [".png", ".jpg", ".bmp"]:
img = Image.open(image)
width = (basewidth / float(img.size[0]))
height = int((float(img.size[1]) * float(width)))
img = img.resize((basewidth, height), PIL.Image.ANTIALIAS)
img = resizeimage.resize('crop', img, [3000, 2800])
img.save(os.path.join(saved, 'resized-' + image))
输出:
Resizing image 852A9961.JPG
Resizing image pc1.PNG
Resizing image try13.py
答案 0 :(得分:2)
基本上,您必须在print('Resizing image ' + image)
代码块中移动if
行。这样,它只会在处理文件时打印消息,而不是目录中的每个文件。
出于文体方面的原因,在for image in os.listdir(filepath):
行中你应该更改文件image
这个词,因为从概念上讲,你在该列表中有通用文件。只有在if
语句之后,您才能确定自己拥有可以处理的图像。