【问题标题】:Tried to open VSCode with subprocess module in python试图用python中的子进程模块打开VSCode
【发布时间】:2018-03-12 18:39:28
【问题描述】:

CMD writes this when I run command "vsc" which open VSCode

这是我为打开VSCode做的功能

def openVSC():
    subprocess.call(["C:\\Program Files\\Microsoft VS Code\\Code.exe"])

这是调用函数“openVSC()”的代码

while True:

    command_input = input(prompt).lower()


    if command_input == "open spotify":
        print("Opening Spotify...")
        openSpotify()
        print()

    elif command_input == "www":
        print("Opening Google Chrome...")
        openChrome()
        print()

    elif command_input == "vsc":
        print("Opening VSCode...")
        openVSC()
        print()


    elif command_input == "quit":
        break

    else:
        pass

另外,当我关闭 cmd 时,VSCode 也会关闭,所以我认为 CMD 正在自己运行 VSCode……似乎没有任何效果,我尝试了所有方法。

【问题讨论】:

  • 您应该复制/粘贴或写出您遇到的错误,而不是链接到图片。请使用edit 链接将此信息添加到您的问题中。此外,您的“问题”中没有明确的问题,只有对正在发生的事情的描述。你认为不应该发生的事情是什么?

标签: python visual-studio-code subprocess


【解决方案1】:

您的问题非常模糊,我们将不胜感激。假设您的问题是您仅从 vscode 调用中获取 STDOUT,那是因为您正在使用 call(),它会等待进程完成,然后再将控制权返回给您的程序。使用类似这样的方法进行调用,您可以在使用脚本调用的程序时设置 STDOUT 指向的位置以读取输出。

from subprocess import Popen, STDOUT
import os

Popen(['vscode'], stdout=os.open(os.devnull, os.O_RDWR), stderr=STDOUT)

这将打开作为子进程运行的进程,您的程序将在此时等待子进程终止。更多地阅读子流程,这应该更有意义。希望这会有所帮助!

【讨论】:

  • 谢谢!非常快的响应并且有效,我还将查看子流程文档的链接,祝您有美好的一天!
  • 当然,我自己总是冲进新的图书馆!享受:)
猜你喜欢
  • 2015-10-07
  • 1970-01-01
  • 2019-05-22
  • 1970-01-01
  • 1970-01-01
  • 2021-05-05
  • 2013-06-25
  • 1970-01-01
  • 2022-01-13
相关资源
最近更新 更多