【问题标题】:unable to run two and more commands in a sequence using subprocess.call无法使用 subprocess.call 按顺序运行两个或更多命令
【发布时间】:2019-10-25 08:26:35
【问题描述】:

有没有办法在终端中使用python在终端中执行shell命令

google-chrome --remote-debugging-port=9222 --user-data-dir=\"/usr/local/xxx/coding/ProjectEnvVS\"

当我使用 subprocess.run 执行上述操作时,我在终端中得到以下内容,并且脚本停止执行下一行代码,直到手动关闭 webbrowser..

基本上,os.system('python ipdb.py') 没有被执行,我也尝试运行 subprocess.run 命令,但注意到正在执行。

DevTools listening on ws://127.0.0.1:9222/devtools/browser/bdsss971-xxxx-1111-a105-78ac9a33tttttt

t

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import webbrowser
import subprocess
from subprocess import call
import os

def myfunc():


    myCmd = 'google-chrome --remote-debugging-port=9222 --user-data-dir=\"/usr/local/xxx/coding/ProjectEnvVS\"'
    print (myCmd)

    subprocess.call(myCmd,shell=True)
    os.system('python ipdb.py')

【问题讨论】:

  • subprocess.run 文档指出该函数等待命令完成。这意味着只要命令正在运行(chrome 窗口打开),调用就会阻塞。

标签: python subprocess


【解决方案1】:

subprocess.call 是一个阻塞调用。如果要执行两个并发调用,请改用Popen

【讨论】:

    猜你喜欢
    • 2018-09-18
    • 2011-09-15
    • 1970-01-01
    • 2012-03-27
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 2012-01-28
    相关资源
    最近更新 更多