如果可能,如何使用操作系统或子进程从命令行程序一个接一个地执行命令?

问题描述

我想问有没有办法在python中运行命令行程序的命令,但是代码必须重复执行,即我想要的解决方案不是这个

os.system(f"xxx.exe {command}").

我尝试了 subprocess.run 函数,将 exe 的名称后跟我想在方括号内执行的命令,然后是这些关键字参数stdout=subprocess.PIPE,text=True 然而,奇怪的是它不会使 data.stdout出于某种原因,整个输出。只有初始代码输出被分配给它。这可能是因为括号内的参数不代表不同的行。因此,我想我使用 subprocess 所做的事情与我通过 os 库执行单行命令的方式相同。

也就是说,我的问题是使用 subprocess 或 os,如何执行必须在不同行中执行的代码,或者如果不可能,如何在 python 中一个一个地执行命令行程序中的命令?

编辑:我应该做这样的事情吗?

os.system(f"xxx.exe {command1} \n {command2}")

解决方法

这是一种捷径,但您可以这样做:

import os
import pyautogui

os.startfile('Path_to_command_prompt')

pyautogui.PAUSE = however long it takes to run each command

pyautogui.write('Command_1')
pyautogui.press('enter')

pyautogui.write('Command_2')
pyautogui.press('enter')