код читает текстовый файл с числами, разделенными на
537, 487, 1115, 652\n
1265, 395, 1629, 693\n
код читает текстовый файл и делит "\ 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")
Я знаю, что мог бы использовать другой подход и конвертировать каждое число в целое число, но я хотел бы знать, можно ли это сделать таким образом.
EDIT:
Я кое-что выяснил с помощью 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")