【问题标题】:Use python function to start application and run commands使用python函数启动应用程序并运行命令
【发布时间】:2017-09-11 08:36:28
【问题描述】:

我希望能够使用 python 脚本启动应用程序,例如记事本或 Chrome。我曾尝试使用 os.startfile() 函数:

import os
os.startfile('Notepad')

它可以工作,但是当我通过它运行 cmd 命令时,例如 whoami :

import os
os.startfile('whoami')

这会打开一个自动关闭的窗口。另一件事是当使用 subprocess 模块并从那里打开应用程序时,程序会挂起。它等待我关闭我打开的程序,然后再继续执行。我希望能够运行应用程序,同时能够运行 cmd 命令并将输出存储在一个变量中,而无需程序等待我退出它打开的应用程序,所有这些都在一个函数中。如何按照我设定的标准实现这一目标

【问题讨论】:

  • 不,终端将“挂起”,直到您终止您打开的应用程序。我不希望终端挂起,我希望它在不挂起的情况下执行。
  • 答案不符合我的要求。
  • 那么您应该尝试将这些要求放在您的问题中,因为我所看到的只是其他现有问题的重复。明确预期行为将提高您找到解决方案的机会

标签: python operating-system subprocess


【解决方案1】:

你可以用标准库subprocess来做到这一点

import subprocess

subprocess.Popen(prog)
print('This is some real multi-tasking!')

注意打印语句发生在程序运行时。

编辑

好的,试试这个:

import subprocess

proc = subprocess.Popen('whoami', stdout=subprocess.PIPE)
output = proc.stdout.read()
print(output.decode())

【讨论】:

  • 以 prog 作为 whoami 命令运行它会导致终端挂起,直到我按 Enter 键,我想不惜一切代价避免这种情况,我无法存储命令的输出或从中读取.
  • 试试新答案:)
猜你喜欢
  • 2018-03-29
  • 2015-10-21
  • 1970-01-01
  • 2013-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-04
  • 2013-04-24
相关资源
最近更新 更多