Python 在Pygame中使用其他文件时,如何打开新文件?

Python 在Pygame中使用其他文件时,如何打开新文件?,python,file,pygame,Python,File,Pygame,所以我做了一个带按钮的主菜单。一个开始按钮和一个退出按钮。我已经将退出按钮编程为退出pygame。现在,我不想将该功能放在我的开始按钮中,该按钮可执行以下操作: 打开另一个Python文件,其中主要的游戏部分正在进行。我创建了一个名为“Testo.py”的新Python文件。 然后,我将不讨论开始按钮使用的代码部分,并编写:open(file=“Testo.py”)。但什么也没发生。我会给你两个按钮的代码,但主要部分是在“绿色按钮”(或开始按钮)。我希望你能理解我的意思 run = True g

所以我做了一个带按钮的主菜单。一个开始按钮和一个退出按钮。我已经将退出按钮编程为退出pygame。现在,我不想将该功能放在我的开始按钮中,该按钮可执行以下操作: 打开另一个Python文件,其中主要的游戏部分正在进行。我创建了一个名为“Testo.py”的新Python文件。 然后,我将不讨论开始按钮使用的代码部分,并编写:open(file=“Testo.py”)。但什么也没发生。我会给你两个按钮的代码,但主要部分是在“绿色按钮”(或开始按钮)。我希望你能理解我的意思

run = True
greenButton = button((0, 255, 0), 280, 255, 250, 100, "Start")
redButton = button ((255, 0, 0), 280, 380, 250, 100, "Quit")
while run:
    redrawWindow()

    for event in pygame.event.get():
        pos = pygame.mouse.get_pos()

        if event.type == pygame.QUIT:
            run = False
            pygame.quit()
            quit()

        if event.type == pygame.MOUSEBUTTONDOWN:
            if greenButton.isOver(pos):
                print("clicked the button")
                open(file="Testo.py")
            if redButton.isOver(pos):
                print("clicked the 2button")
                run = False
                pygame.quit()
                quit()

        if event.type == pygame.MOUSEMOTION:
            if greenButton.isOver(pos):
                greenButton.color = (105, 105, 105)
            else:
                greenButton.color = (0, 255, 0)
            if redButton.isOver(pos):
                redButton.color = (105, 105, 105)
            else:
                redButton.color = (255, 0, 0)

编辑:我问了一个新问题,现在我明白了。抱歉,我显然把这个问题表述错了,因为我对pygame/python了解不多,所以问了这个问题。无论如何,感谢所有回答这个问题的人。我希望其他读过这篇文章的人能得到他们需要的答案:)

open
打开一个文件可以让你像在文本编辑器中打开一样读/写该文件。我假设您想要执行该文件中编写的python代码?在这种情况下,必须导入它并调用要执行的函数。例如:

导入Testo
Testo.main()
您可以这样做:

execfile('Testo.py')
但我建议您导入它并使用运行它

有很多种方法。我将按倒序列出它们 偏好(即,最佳优先,最差最后):

  • 将其视为一个模块:
    导入文件
    。这很好,因为它安全、快速且可维护。代码按预期被重用 待完成。大多数Python库使用多种方法运行 有很多文件。强烈推荐。请注意,如果您的文件是 名为
    file.py
    ,您的
    导入不应包括
    .py
    最后是延长
  • 臭名昭著的(且不安全的)命令:不安全的、黑客式的,通常是错误的答案。尽可能避免。
    • Python 2中的execfile('file.py')
    • Python3中的exec(open('file.py').read())
  • 生成一个shell进程:
    os.system('python file.py')
    。绝望时使用

  • 嗯,我不知道你是什么意思。请你写一下(导入并运行)我该怎么写?我是新手,请查看Luka Mesarici的回复如果您将其视为一个模块,那么您必须将其放入python文件夹中