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

如何通过Python的subprocess模块调用终端启动VSCode并打开指定项目目录及文件

如何通过Python的subprocess模块调用终端启动VSCode并打开指定项目目录及文件

刚好我之前写本地开发工具脚本时遇到过一模一样的需求,其实实现起来很简单,核心就是利用VSCode提供的终端命令,再通过Python的subprocess模块去调用它就行。

先做个前置准备

在MacOS上,VSCode默认不会把code命令添加到系统PATH里,所以第一步得先配置一下:

  • 打开VSCode,按下Cmd+Shift+P调出命令面板
  • 搜索并执行「Shell Command: Install 'code' command in PATH」
    这样之后,你在终端里输入code就能直接启动VSCode了,这是Python脚本能调用它的前提。

具体实现代码

我推荐用subprocess.run()来执行命令,这是Python 3.5+的推荐用法,安全且易调试:

import subprocess
import os

# 定义你的项目目录和目标文件路径,用~代表用户目录
project_dir = "~/workspace/my/project/"
target_file = "~/workspace/my/project/javascript-file.js"

# 把~展开成系统能识别的绝对路径,避免路径解析错误
project_dir = os.path.expanduser(project_dir)
target_file = os.path.expanduser(target_file)

# 调用code命令,同时打开指定目录和文件
try:
    subprocess.run(["code", project_dir, target_file], check=True)
    print("VSCode已成功打开指定目录和文件")
except subprocess.CalledProcessError:
    print("启动VSCode失败,请检查code命令是否配置正确")

补充说明

  • 为什么用列表传参?这种方式不需要启动shell,能避免路径里有空格、特殊字符时出现解析错误,也更安全(防止shell注入风险)
  • 如果不想等待VSCode启动完成就继续执行脚本,可以换成subprocess.Popen():
    subprocess.Popen(["code", project_dir, target_file])
    
  • 要是你习惯用shell模式(不推荐),也可以这么写,但要注意路径转义:
    subprocess.run(f"code {project_dir} {target_file}", shell=True, check=True)
    

总的来说,思路就是用Python调用系统里的code终端命令,把要打开的目录和文件作为参数传递进去就行,非常直观。

备注:内容来源于stack exchange,提问作者Decoded

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 11:55:29