我的脚本有问题,我正在尝试将其另存为Algenblüte.png
,但发现我'Algenbl'$'\303\274''te.png'
“ Algenblüte”列表中的单词之一。但是,如果我使用任何其他名称,例如“ Abguss ”,则可以毫无问题地将其保存为Abguss.png。
from PIL import Image, ImageDraw, ImageFont
import os
import sys
reload(sys)
sys.setdefaultencoding('utf8')
filepath = 'name.txt'
fonttype = '/usr/share/fonts/truetype/msttcorefonts/Arial.ttf'
fntYU = ImageFont.truetype(fonttype, 150)
i=0
with open(filepath) as myfile:
#for data in myfile and i in range(2):
#for data in myfile:
for index, data in enumerate(myfile):
print (data)
if index == 3:
break
if (len(data)) <= 12:
img = Image.new('RGB', (1000, 1000), color = (255, 255, 255))
fnt = ImageFont.truetype(fonttype, 550)
d = ImageDraw.Draw(img)
d.text((600,700), data, font=fnt, fill=(0, 0, 0))
img.save(data.replace('\n', '')+".png")
答案 0 :(得分:0)
文件name.txt
的编码可能不同。在调用encode
之前,尝试使用utf-8
字符串函数将文件名转换为save
。
答案 1 :(得分:0)
问题起源
您的问题与德语“Ü” 相关联,这不是标准字符串值。 IT会这样编码。
小测试
尝试通常的德语转换并使用algenbluete.png
,您应该不会遇到问题。
快速解决方案
此类文件很少,然后手动重命名。
我知道这很乏味,但是以我的卑鄙经验,很多python库都讨厌德语,捷克语,法语等特殊字符。
快速而肮脏的解决方案
德语特殊字符的数量受限制[ä, ü, ö, ß]
: