代码读取数字为
的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")