You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python执行外部程序/文件且保持自身代码持续运行?

Python 并行执行外部程序与调用系统默认关联程序

一、实现主程序与外部程序并行运行(达成指定输出顺序)

直接调用外部Python脚本会阻塞主程序执行,要让main.py和File1.py并行运行,可使用subprocess.Popen启动独立子进程,主程序无需等待其结束即可继续执行。

修改后的main.py代码如下:

from time import sleep
import subprocess

print("main.py has started")
# 启动File1.py,不阻塞主程序
subprocess.Popen(["python", "File1.py"])
sleep(2)
print("main.py is still running")
sleep(2)
print("main.py has ended")

运行后即可得到期望的输出顺序:

>> main.py has started
>> File1 has started
>> main.py is still running
>> File1 has ended
>> main.py has ended

说明:subprocess.Popen会启动独立进程运行File1.py,主程序main.py继续向下执行,两者输出会根据各自的sleep时间交错出现,完全匹配预期逻辑。

二、调用系统默认关联程序打开文件

可以通过跨平台方式调用系统默认程序打开对应格式文件,以下是两种实用方案:

方案1:跨平台通用实现

利用各系统自带命令(Windows用start、macOS用open、Linux用xdg-open),通过subprocess.run执行:

import subprocess
import os
import sys

def open_with_default_app(file_path):
    if os.name == 'nt':  # Windows系统
        subprocess.run(["start", "", file_path], shell=True)
    elif os.name == 'posix':  # macOS/Linux系统
        if sys.platform == 'darwin':  # macOS
            subprocess.run(["open", file_path])
        else:  # Linux
            subprocess.run(["xdg-open", file_path])

# 示例:打开txt文件
open_with_default_app("example.txt")

方案2:Windows专属简化实现

Windows系统可直接使用os.startfile快速调用默认程序:

import os
os.startfile("example.txt")

该方法会自动调用系统中与.txt格式关联的默认程序(如记事本、Word等)打开目标文件。

内容的提问来源于stack exchange,提问作者Tousend1000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 15:27:09