获得无穷大输入 PIL (python)

get infinity input PIL (python)

我正在编写一个将图像转换为 png 并将大小转换为 512 的程序, 我想获得更多的意见。

from PIL import Image
import string
import random

put = input("enter your image path:")
im = Image.open(put)
size = (512,512)

if im.size > size:
        im.thumbnail(size,Image.ANTIALIAS)    
else:
       print ("it's ready")

ranam = (''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(12)))
name = "d:/arjang/images/" + ranam

im.save(name + ".png")

请帮忙。

这将循环,要求另一个图像路径调整大小,直到您输入一个空字符串:

from PIL import Image
import string
import random

while True:

    put = input("enter your image path:")
    if not put.strip(): break
    im = Image.open(put)
    size = (512,512)
    if im.size > size:

        im.thumbnail(size,Image.ANTIALIAS)

    else:
        print ("it's ready")

    ranam = (''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(12)))
    name = "d:/arjang/images/" + ranam

    im.save(name + ".png")

您被“input() 函数误导了。它没有执行您希望名为 input 的函数执行的操作。input 执行您键入的代码。

这太具有误导性了,以至于 python3 更改了 "input()" 来做显而易见的事情并删除了 raw_input()。

要从标准输入中读取一行,您可以在 python2:

中使用它
put = raw_input("enter your image path:")

或者您可以这样做:

import sys

sys.stdout.write("enter your image path:")
sys.atdout.flush()
put = sys.stdin.readline().strip()