如何执行另一个 python 文件然后关闭现有文件?

How to execute another python file and then close the existing one?

我正在开发一个需要调用另一个 python 脚本并截断当前文件执行的程序。我尝试使用 os.close() 函数做同样的事情。如下:

def call_otherfile(self):
    os.system("python file2.py") #Execute new script 
    os.close() #close Current Script 

使用上面的代码我可以打开第二个文件但无法关闭当前文件one.I知道我犯了一个愚蠢的错误但无法弄清楚它是什么。

使用 subprocess module which is the suggested way to do that kind of stuff (execute new script, process), in particular look at Popen for starting a new process and to terminate the current program you can use sys.exit().

为此,您需要直接生成一个子进程。这可以通过 more low-level fork and exec 模型来完成,就像 Unix 中的传统一样,或者使用 higher-level API 如 subprocess.

import subprocess
import sys

def spawn_program_and_die(program, exit_code=0):
    """
    Start an external program and exit the script 
    with the specified return code.

    Takes the parameter program, which is a list 
    that corresponds to the argv of your command.
    """
    # Start the external program
    subprocess.Popen(program)
    # We have started the program, and can suspend this interpreter
    sys.exit(exit_code)

spawn_program_and_die(['python', 'path/to/my/script.py'])

# Or, as in OP's example
spawn_program_and_die(['python', 'file2.py'])

此外,请注意您的原始代码。 os.close 对应于 Unix 系统调用 close,它告诉内核您的程序不再需要文件描述符。它不应该用于退出程序。

如果你不想定义你自己的函数,你总是可以像 Popen(['python', 'file2.py'])

一样直接调用 subprocess.Popen

它非常简单,使用 os.startfile 然后使用 exit() 或 sys.exit() 它将工作 100% #file 1 os.startfile("file2.py") exit()