我想连续执行多个命令:
即(只是为了说明我的需要):
cmd
(贝壳)
然后
cd dir
和
ls
并读取的结果ls
。
对subprocess
模块有任何想法吗?
更新:
cd dir
而ls
只是一个例子。我需要运行复杂的命令(遵循特定的顺序,没有任何流水线操作)。实际上,我想要一个子进程外壳,并希望能够在其上启动许多命令。
有一种简单的方法可以执行一系列命令。
在以下使用 subprocess.Popen
"command1; command2; command3"
或者,如果您陷在Windows中,则有多种选择。
创建一个临时的“ .BAT”文件,并将其提供给 subprocess.Popen
在单个长字符串中创建带有“ \ n”分隔符的命令序列。
像这样使用“”。
"""
command1
command2
command3
"""
或者,如果您必须零碎地做某事,则必须做这样的事情。
class Command( object ):
def __init__( self, text ):
self.text = text
def execute( self ):
self.proc= subprocess.Popen( ... self.text ... )
self.proc.wait()
class CommandSequence( Command ):
def __init__( self, *steps ):
self.steps = steps
def execute( self ):
for s in self.steps:
s.execute()
这将允许您构建一系列命令。
问题内容: 我有类似的代码 它没有在node.js中按顺序执行,因此在执行结束时得到一个空数组。问题是它将先执行然后执行 我的代码中是否有任何错误或执行此操作的任何其他方式?谢谢! 问题答案: 您可能已经知道,事情在node.js中异步运行。因此,当您需要使事物按特定顺序运行时,您需要利用控件库或基本上自己实现。 我强烈建议您看一下async,因为它可以轻松地使您执行以下操作: 在这里看到的主要内
问题内容: 我需要为测试设置执行顺序,因为我需要先验证一些数据。可以下订单吗? 谢谢 问题答案: 最好不要这样做。 测试应该是独立的。 要做您最想做的就是将代码放入测试调用的函数中。 像那样: 甚至拆分测试类,并将断言放入setUp函数中。 当我拆分班级时,我经常编写更多更好的测试,因为测试被拆分,并且在应该测试的所有情况下我都能看到更好的结果。
vue2那些情况会导致父组件的mounted比子组件的mounted先执行 回复
问题内容: 我需要使用sshj库通过ssh在远程服务器上执行一些命令序列。 我做 它把我扔了 net.schmizz.sshj.common.SSHRuntimeException:该会话通道已全部用尽 但是我无法为每个命令重新创建会话,因为此示例将显示主目录列表,但不显示/ some / dir列表。 问题答案: 您可以考虑使用类似Expect的第三方库,该库简化了使用远程服务和捕获输出的过程。
问题内容: 我试图理解这段代码,不确定为什么第二遍在第一遍之前执行。如果有人真的可以帮助我,那就太好了! 输出: 问题答案: 您没有任何内容可以显式同步两个goroutine的顺序。如果运行足够的时间,您将看到调用以不同的顺序进行打印。当执行goroutine时,由于它们是并发操作,因此无法保证它们将何时执行和/或完成。您需要使用各种标准库程序包或通道本身来同步并发运行的goroutine的执行。
问题内容: 我正在尝试在python脚本中执行curl命令。 如果我在终端中执行此操作,则如下所示: 我看到了使用建议,但是我不知道如何将其应用于我的。 我尝试使用: 可以,但是还有更好的方法吗? 问题答案: 您可以像@roippi一样使用urllib: