首页 > 解决方案 > 文件只写在我的程序末尾

问题描述

我正在使用 pygame 在 Python 中创建一个游戏,当我更新我的 pygame 显示时我必须更新我的文件。但是当我尝试编写它时,它只写在我的程序末尾。

我尝试编写文件的类

class GameReader():

    def __init__(self):

        self.file_content = [
            {'last_edit': 0},
            {
                'map_infos': {
                    'p1': 0,
                    'p2': 0,
                    'p3': 0,
                    'p4': 0,
                    'p5': 0,
                    'p6': 0,
                    'p7': 0,
                    'p8': 5
                }
            }
        ]

        self.update_file()

    def update_file(self):
        with open('gameFiles/game.yaml', 'w') as file:
            yaml.dump(self.file_content, file)
            file.close()

的实例GameReader()存储在一个类中Game()

while running:

    # ajout du menu
    screen.blit(game.menu.image, game.menu.rect)

    # ajout du boutton de départ
    screen.blit(game.start_btn.image, game.start_btn.rect)

    # update
    pygame.display.flip()

    # update de la game file
    game.game_reader.update_file()

    # recuperer les events
    for event in pygame.event.get():

        # si fermeture de fenetre
        if event.type == pygame.QUIT:
            running = False
            pygame.quit()

标签: pythonfilewhile-looppygameyaml

解决方案


文件是通过缓冲区写入的,因此您需要刷新它。

file.flush()

推荐阅读