无法打开资源:OS 错误
cannot open resource: OS Error
OSError Traceback (most recent call
last) in ()
21 draw = PIL.ImageDraw.Draw(img)
22 print(os.path.join(path, filename))
---> 23 draw.font = PIL.ImageFont.truetype((os.path.join(path, filename))+ '.ttf', 44)
24 t2 = get_display(t1)
25 w, h = draw.textsize(t2)
()
OSError: cannot open resource
我在执行以下操作时遇到此错误 PIL
或者我犯了一些错误。它只显示第一个文件路径然后出现这个错误。
unicode_text = u"\u0627"
list_of_letters = list (unicode_text)
folder = 1
n=1
i=0
for i in range(0,158):
path = r"E:\Dummy\fonts"
dirs = os.listdir( path )
for files in dirs:
char = u''.join(list_of_letters)
t1 = arabic_reshaper.reshape(char)
W,H= (100, 100)
img= PIL.Image.new('RGBA', (W, H), (255, 255, 255),)
draw = PIL.ImageDraw.Draw(img)
print(os.path.join(path, filename))
draw.font = PIL.ImageFont.truetype((os.path.join(path, filename)), 44)
t2 = get_display(t1)
w, h = draw.textsize(t2)
draw.text(((W-w)/2,(H-h)/2),t2, fill="#000000")
path = 'E:\Dummy\sam\'+ str(folder)
if not os.path.exists(path):
os.makedirs(path)
img.save(path + '\' + char+'.png', "PNG")
folder+=1
#i+=1
从您的回答来看,程序失败的地方不是很清楚。它抱怨无法打开文件。这行在我看来很可疑:
path = 'E:\Dummy\sam\'+ str(folder)
我建议您永远不要手动将路径与反斜杠连接起来,而是始终使用 Python 标准库来为您执行此操作。例如,您不需要关心转义某些字符。
dir_path = os.path.join('E:', 'Dummy', 'sam', str(folder))
file_name = '{}.png'.format(char)
file_path = os.path.join(dir_path, file_name)
如果您不在循环内向文件夹添加 1,而是使用 built-in 函数 enumerate
:
,则可以对您的代码进行另一项改进
for folder_index, file in enumerate(dirs, start=1):
# Do your thing here
# The variable folder_index is incremented automatically.
OSError Traceback (most recent call last) in ()
21 draw = PIL.ImageDraw.Draw(img) 22 print(os.path.join(path, filename)) ---> 23 draw.font = PIL.ImageFont.truetype((os.path.join(path, filename))+ '.ttf', 44) 24 t2 = get_display(t1) 25 w, h = draw.textsize(t2)
()
OSError: cannot open resource
我在执行以下操作时遇到此错误 PIL
或者我犯了一些错误。它只显示第一个文件路径然后出现这个错误。
unicode_text = u"\u0627"
list_of_letters = list (unicode_text)
folder = 1
n=1
i=0
for i in range(0,158):
path = r"E:\Dummy\fonts"
dirs = os.listdir( path )
for files in dirs:
char = u''.join(list_of_letters)
t1 = arabic_reshaper.reshape(char)
W,H= (100, 100)
img= PIL.Image.new('RGBA', (W, H), (255, 255, 255),)
draw = PIL.ImageDraw.Draw(img)
print(os.path.join(path, filename))
draw.font = PIL.ImageFont.truetype((os.path.join(path, filename)), 44)
t2 = get_display(t1)
w, h = draw.textsize(t2)
draw.text(((W-w)/2,(H-h)/2),t2, fill="#000000")
path = 'E:\Dummy\sam\'+ str(folder)
if not os.path.exists(path):
os.makedirs(path)
img.save(path + '\' + char+'.png', "PNG")
folder+=1
#i+=1
从您的回答来看,程序失败的地方不是很清楚。它抱怨无法打开文件。这行在我看来很可疑:
path = 'E:\Dummy\sam\'+ str(folder)
我建议您永远不要手动将路径与反斜杠连接起来,而是始终使用 Python 标准库来为您执行此操作。例如,您不需要关心转义某些字符。
dir_path = os.path.join('E:', 'Dummy', 'sam', str(folder))
file_name = '{}.png'.format(char)
file_path = os.path.join(dir_path, file_name)
如果您不在循环内向文件夹添加 1,而是使用 built-in 函数 enumerate
:
for folder_index, file in enumerate(dirs, start=1):
# Do your thing here
# The variable folder_index is incremented automatically.