如何运行我的“program2.py”并关闭“program1.py”?
我正在写一个简单的Python代码,main.py里有一个按钮,点击这个按钮就会打开main_newFile.py。不过,我搞不清楚为什么它找不到我的第二个文件。
我用os.system("main_newFile.py")来启动这个程序,然后用sys.exit()来关闭main.py。但是,os.system却提示找不到我的文件。如果你看看图片,你会发现main_newFile应该和main.py在同一个文件夹里。我可以确认它们在同一个文件夹,因为我还有一些背景图片也能加载到我的tkinter里。
有没有人知道哪里出问题了,或者有没有更好的方法来启动第二个Python文件?谢谢!
1 个回答
0
要解决你的问题,可以使用 os.system('./main_newFile.py')
。
之所以 os.system('main_newFile.py')
不管用,是因为在Linux系统中,.
(当前目录)默认不在程序查找路径里。
还有一个更好的解决办法,这个方法避免使用 os.system
(因为它一般不安全,因为会通过shell来执行):
import subprocess
import sys
def start_newFile():
subprocess.call((sys.executable, 'main_newFile.py'))
sys.exit()
sys.executable
是当前的Python解释器,比如说 /usr/bin/python
。
还有一个更好的方法,它会在和 main.py
相同的目录下查找 main_newFile.py
:
import os
import os.path
import subprocess
import sys
def start_newFile():
subprocess.call((
sys.executable,
os.path.join(os.path.dirname(__file__), 'main_newFile.py')))
sys.exit()