如何在图像上打印csv文件中的所有字符串

2024-09-27 00:19:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将csv文件中每个冒号中的所有文本打印到不同的图像中,但在循环通过冒号后,它只打印图像上的最后一个文本。我需要帮助

import pandas as pd
from PIL import Image, ImageDraw, ImageFont
import os
import random

# change directory
os.chdir("C:/Users/V24/Desktop/py_images")

# declare fontsFolder & choose image to print on
my_image = 'python.png'
fontsFolder = 'C:/Windows/Fonts'
fontsFolder = 'fontsfolder'

# reading csv file
a = pd.read_csv("try.csv")

# choose keys
album = a.AlbumID
topics = a.Topics

Name = random.randrange(1,100)
full_name = str(Name) + ".jpg" 

for i,j in zip(album,topics):
     print ('i have album id of : ' + str(i) + ' ' + str(j))
     name = 0
     name = name + 1
     full_name = str(name) + ".jpg" 

     img = Image.open(my_image)
     draw = ImageDraw.Draw(img)

     fontsFolder = 'fontsfolder'
     arialFont = ImageFont.truetype(os.path.join(fontsFolder, 'arial.ttf'), 16)
     draw.text((80,70), str(i), font=arialFont, fill=('black'))
     draw.text((80,150), str(j),font=arialFont, fill='midnightblue')
     img.save(full_name)```

Tags: csvname图像image文本importimgalbum
1条回答
网友
1楼 · 发布于 2024-09-27 00:19:40

你在一个未定义的变量上循环

import pandas as pd
from PIL import Image, ImageDraw, ImageFont
import os
import random

# change directory
os.chdir("C:/Users/V24/Desktop/py_images")

# declare fontsFolder & choose image to print on
my_image = 'python.png'
fontsFolder = 'C:/Windows/Fonts'
fontsFolder = 'fontsfolder'

# reading csv file
a = pd.read_csv("try.csv")

# choose keys
album = a.AlbumID
topics = a.Topics

Name = random.randrange(1,100)
full_name = str(Name) + ".jpg" 

name = 0
for i,j in zip(album,topics):  # this is the line that was wrong
     print ('i have album id of : ' + str(i) + ' ' + str(j))
     name = name + 1
     full_name = str(name) + ".jpg" 

     img = Image.open(my_image)
     draw = ImageDraw.Draw(img)

     fontsFolder = 'fontsfolder'
     arialFont = ImageFont.truetype(os.path.join(fontsFolder, 'arial.ttf'), 16)
     draw.text((80,70), str(i), font=arialFont, fill=('black'))
     draw.text((80,150), str(j),font=arialFont, fill='midnightblue')
     img.save(full_name)```

我没有要测试的csv文件,但它应该可以工作。另外,一般来说,使用大小写不同的变量(名称与名称)是非常危险的。考虑到“name”包含一个数字,可以将其称为index

相关问题 更多 >

    热门问题