在代码中使用字符串作为常规文本

时间:2018-06-27 12:59:32

标签: string python-2.7 list integer pillow

代码读取数字为

的txt文件
537, 487, 1115, 652\n
1265, 395, 1629, 693\n

代码读取txt文件,并分隔“ \ n”,留下类似列表:

['537, 487, 1115, 652','1265,395,1629,693']

我需要在代码中使用每个字符串作为常规文本,以使用PIL裁剪图像 所以我想知道是否有一种方法可以摆脱“字符串”,所以在代码中看起来像这样:

img2 = img.crop((537, 487, 1115, 652))

代替:

img2 = img.crop(('537, 487, 1115, 652'))

代码如下:

import os, sys
from PIL import Image
import PIL.ImageOps

lines = [line.rstrip('\n') for line in open('file.txt')]

for i in range(0, len(lines)):

    img = Image.open("data\\image.jpg")
    img2 = img.crop((int(lines[i])))
    inimg = PIL.ImageOps.invert(img2)
    inimg.save("data\\orcropinverted.jpg")

我知道我可以使用不同的方法并将每个数字转换为int,但是我想知道是否可以那样做。

编辑:

我用re找到了一些东西,但这不是我想要的,无论如何都可以...

import os, sys
import re
from PIL import Image
import PIL.ImageOps

lines = [line.rstrip('\n') for line in open('file.txt')]

for i in range(0, len(lines)):

    p = re.compile('\d+')
    sgline = p.findall(lines[i])

    img = Image.open("data\\image.jpg")
    img2 = img.crop((int(sgline[0]),int(sgline[1]),int(sgline[2]),int(sgline[3])))
    inimg = PIL.ImageOps.invert(img2)
    inimg.save("data\\orcropinverted.jpg")

0 个答案:

没有答案