如何使用 Popen 在一个进程中运行多个命令?

2023-11-26

我想打开一个进程并在同一进程中运行两个命令。我有 :

cmd1 = 'source /usr/local/../..'
cmd2 = 'ls -l'
final = Popen(cmd2, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True)
stdout, nothing = final.communicate()
log = open('log', 'w')
log.write(stdout)
log.close()

如果我使用popen两次,这两个命令将在不同的进程中执行。但我希望它们在同一个 shell 中运行。


这些命令始终是两个 (unix) 进程,但您可以通过一次调用来启动它们Popen和使用相同的外壳:

from subprocess import Popen, PIPE, STDOUT

cmd1 = 'echo "hello world"'
cmd2 = 'ls -l'
final = Popen("{}; {}".format(cmd1, cmd2), shell=True, stdin=PIPE, 
          stdout=PIPE, stderr=STDOUT, close_fds=True)
stdout, nothing = final.communicate()
log = open('log', 'w')
log.write(stdout)
log.close()

运行程序后,文件“log”包含:

hello world
total 4
-rw-rw-r-- 1 anthon users 303 2012-05-15 09:44 test.py
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Popen 在一个进程中运行多个命令? 的相关文章

随机推荐

  • SQL Server ORDER BY 日期和最后的空值

    我正在尝试按日期订购 我希望最近的日期排在最前面 这很简单 但是有许多记录为空 并且这些记录位于任何具有日期的记录之前 我尝试了一些方法但没有成功 ORDER BY ISNULL Next Contact Date 0 ORDER BY I
  • 更改 PreferenceActivity 文本颜色

    我想将 Android 应用程序的首选项屏幕的外观更改为深色文本颜色 我怎样才能做到这一点 我已经将背景更改为白色 我假设您使用一个 Activity 来扩展PreferenceActivity 您可以使用setTheme方法在您的首选项屏
  • 使用 web.config 允许服务器端包含在 HTML 文件中 (IIS)

    在IIS 7 5中 是否可以使用网络配置单独启用SSI处理具有以下内容的文件 html扩大 具体来说 我不想使用默认的 SSI 扩展 shtml Reason 我不想更改扩展名 这样做会导致搜索引擎结果中的链接损坏 另外 我这样做的动机是网
  • asp.net core 2.0中的机器密钥?

    我有相同的 asp net core 2 应用程序在 2 个不同的服务器上运行 但使用相同的数据库来存储用户等 问题是 如果我在一台服务器中创建并设置用户密码 则运行同一应用程序的另一台服务器将返回无效密码 反之亦然 几年前 我在使用 AS
  • 用于平铺列表视图的 WPF 工具包

    我需要创建格式良好的按钮图块 例如 Windows 8 起始页 是否有任何工具包可用于自定义 ListView 它可能支持平铺视图或网格视图 具有一些格式设置 并且可能有一些动画选项 我尝试创建自己的自定义列表视图 但这似乎是一项复杂的任务
  • 如何避免 super() 无限递归?

    我有这样的代码 class A object def init self self a 1 class B A def init self self b 2 super self class self init class C B def
  • 如何输入带密码的命令进行git pull?

    我想在一行中执行此命令 git pull my passphrase 怎么做 这并不完全是您所要求的 而是针对 http s 的 您可以将密码放在 netrc 文件中 Windows 上为 netrc 从那里它会被自动拾取 它将进入您的主文
  • 如何使用 jQuery Migrate 插件

    我正在使用 jquery 2 0 但还想使用 jQuery migrate 插件 以便我的网站可以在旧版浏览器上运行 然而 我一直没能成功地让它发挥作用 我的 html 标题部分有以下内容
  • 如何拦截具有标准 java 功能(无 AspectJ 等)的方法调用?

    我想拦截对某个类 MyClass 的所有方法调用 以便能够对某些 setter 调用做出反应 我尝试使用动态代理 但据我所知 这只适用于实现某些接口的类 但MyClass没有这样的接口 除了实现包装类之外 是否还有其他方法将所有调用委托给成
  • “列表”对象没有属性“查找”

    我知道这是一个基本问题 但我是 python 新手 不知道如何解决它 我有一个类似于下一个示例的列表 entities 1 IFCORGANIZATION Autodesk Revit 2014 ENU 5 IFCAPPLICATION 1
  • Android Https Web 服务通信 (SSL / TLS 1.2)

    在我的 Android 应用程序中 我必须与 https Web 服务进行通信并读取响应 我已经通知服务器配置了SSL with TLS 1 2 我使用以下示例代码来连接服务 https get 请求 但仅限运行的设备安卓5 0或以上可以成
  • 在Python中播放和控制mp3文件?

    首先 我是一名 Python 初学者 具有典型的面向对象知识的 C Java 背景 我确信要尝试使用 Python 来完成我当前正在做的工作 到目前为止我很喜欢它 我遇到的一个问题是找到一个好的 mp3 模块 我尝试过 TkSnack 它安
  • 如何以编程方式更新 UIView 的恒定高度约束?

    我有一个UIView我使用 Xcode Interface Builder 设置约束 现在我需要更新UIView以编程方式保持实例的高度常量 有一个函数就像myUIView updateConstraints 但我不知道如何使用它 从界面构
  • Symfony 注销处理程序

    我只是尝试了几个小时来弄清楚如何在注销操作后使闪存消息正常工作 安全 yml login pattern login security false secured area pattern form login check path che
  • 无法监听UIAxes的YLim属性

    MATLAB 提供了addlistener功能 监听器使我们能够跟踪对象属性的变化并对其采取行动 例如 我们可以创建一个非常简单的侦听器 当 YLim 的财产axes对象被改变 Example using axes ax axes addl
  • 句子间距[关闭]

    Closed 这个问题是基于意见的 目前不接受答案 呈现句子之间应有的额外间距的最佳方式是什么 使用 X HTML CSS p Lorem ipsum Dolor sit amet p wider than word spacing 由于
  • 在循环(或推导式)中创建函数(或 lambda)

    我正在尝试在循环内创建函数 functions for i in range 3 def f return i alternatively f lambda i functions append f 问题是所有功能最终都是相同的 所有三个函
  • 使用现有私钥和 RS256 算法生成 JWT

    我有以下 RSA 私钥 并且我必须生成 JWT 令牌使用RS256算法 这是我的样本私钥 BEGIN RSA PRIVATE KEY MIIEoAIBAAKCAQEAnFWdIwBbLRw4xfFDXYFmlXKB4BpKeuAtfh1dc
  • Java 中的嵌套函数

    Java 编程语言是否有任何扩展可以创建嵌套函数 在很多情况下 我需要创建仅在另一个方法或 for 循环的上下文中使用一次的方法 到目前为止 我还无法在 Java 中完成此任务 尽管可以在 JavaScript 中轻松完成 例如 这不能在标
  • 如何使用 Popen 在一个进程中运行多个命令?

    我想打开一个进程并在同一进程中运行两个命令 我有 cmd1 source usr local cmd2 ls l final Popen cmd2 shell True stdin PIPE stdout PIPE stderr STDOU