我想在文件夹中所有文件的每一行末尾添加一个字符,因此我编写了一些代码以遍历每个文件并添加所需的更改,但是输出文件的文件名与原始文件不同,下面是我放在一起的代码 运行代码后,我得到以下文件名 这是原始文件名 我知道这个问题可能与此有关 但我还没有找到以不同方式执行此任务的方法 如果有人 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我的脚本有问题,我试图将其另存为Algenblüte.png
但在我'Algenbl'$'\\303\\274''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")
文件名name.txt
可能具有不同的编码。 在调用save
之前,请尝试使用encode
字符串函数将文件名转换为utf-8
。
问题根源
您的问题与非标准字符串值的德语“Ü”相关 。 IT将被这样编码。
小测试
尝试常规的德语转换并使用algenbluete.png
,您应该不会有问题。
快速解决方案
这样的文件很少,然后手动重命名 。
我知道这很乏味,但是以我的卑鄙经验,很多python库都讨厌德语,捷克语,法语等特殊字符。
快速而肮脏的解决方案
德语特殊字符的数量是有限的[ä, ü, ö, ß]
:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.