pygame quit() 时仍然使用 .ttf 文件
pygame still uses the .ttf file when quit()
我试图运行这个简单的程序:
import os
import pygame
pygame.init()
font = pygame.font.Font('font.ttf', 20)
pygame.quit()
os.remove('font.ttf')
Pygame 使用 font.ttf
文件。但是当它关闭时,它不应该再使用它了。所以我应该能够删除该文件。但是好像os
删除不了(报错说文件被其他进程使用)
当我删除 font = ...
行时,一切正常。因此,我得出结论,即使使用 quit()
.
退出 pygame
,字体文件仍在使用
这是一个错误吗?我错过了文档中的某些内容吗?我也试过这个来查看是否 pygame.quit()
运行s 在另一个需要时间处理的线程中 - 但错误仍然发生:
...
import time
ok = False
while not ok:
time.sleep(1) # retry every second
try:
os.remove('font.ttf')
ok = True
except:
print('Error')
print('Success')
这里的问题是,无论出于何种原因,尽管使用了 pygame 退出方法,它并没有关闭它创建的文件处理程序。在这种情况下,您为其提供字体文件名,然后它会打开文件,但完成后不会关闭文件。
这个问题的解决方法是给它一个文件处理程序,而不是文件名。然后,在完成 pygame 后,您可以自己关闭文件处理程序。
import os
import pygame
# Make file handler
f = open('font.ttf', "r")
pygame.init()
# Give it the file handler instead
font = pygame.font.Font(f, 20)
pygame.quit()
# Close the handler after you are done
f.close()
# Works! (Tested on my machine)
os.remove('font.ttf')
我试图运行这个简单的程序:
import os
import pygame
pygame.init()
font = pygame.font.Font('font.ttf', 20)
pygame.quit()
os.remove('font.ttf')
Pygame 使用 font.ttf
文件。但是当它关闭时,它不应该再使用它了。所以我应该能够删除该文件。但是好像os
删除不了(报错说文件被其他进程使用)
当我删除 font = ...
行时,一切正常。因此,我得出结论,即使使用 quit()
.
pygame
,字体文件仍在使用
这是一个错误吗?我错过了文档中的某些内容吗?我也试过这个来查看是否 pygame.quit()
运行s 在另一个需要时间处理的线程中 - 但错误仍然发生:
...
import time
ok = False
while not ok:
time.sleep(1) # retry every second
try:
os.remove('font.ttf')
ok = True
except:
print('Error')
print('Success')
这里的问题是,无论出于何种原因,尽管使用了 pygame 退出方法,它并没有关闭它创建的文件处理程序。在这种情况下,您为其提供字体文件名,然后它会打开文件,但完成后不会关闭文件。
这个问题的解决方法是给它一个文件处理程序,而不是文件名。然后,在完成 pygame 后,您可以自己关闭文件处理程序。
import os
import pygame
# Make file handler
f = open('font.ttf', "r")
pygame.init()
# Give it the file handler instead
font = pygame.font.Font(f, 20)
pygame.quit()
# Close the handler after you are done
f.close()
# Works! (Tested on my machine)
os.remove('font.ttf')