使用多个管道从 Python 执行 Shell 脚本

2024-04-22

我想在 python 脚本中执行以下 Shell 命令:

dom=myserver    
cat /etc/xen/$myserver.cfg | grep limited | cut -d= -f2 | tr -d \"

我有这个:

dom = myserver

limit = subprocess.call(["cat /etc/xen/%s.cfg | grep limited | cut -d= -f2", str(dom)])
subprocess.call(['/root/bin/xen-limit', str(dom), str(limit)])

它不起作用,但我不知道为什么..

Update:

c1 = ['cat /etc/xen/%s.cfg']
p1 = subprocess.Popen(c1, stdout=subprocess.PIPE)

c2 = ['grep limited']
p2 = subprocess.Popen(c2, stdin=p1.stdout, stdout=subprocess.PIPE)

c3 = ['cut -d= -f2']
p3 = subprocess.Popen(c3, stdin=p2.stdout, stdout=subprocess.PIPE)

c4 = ['tr -d \"']
p4 = subprocess.Popen(c4, stdin=p3.stdout, stdout=subprocess.PIPE)

result = p4.stdout.read()

limit = subprocess.call([result])
subprocess.call(['/root/bin/xen-limit', str(dom), str(limit)])

您可以将多个子流程粘合在一起:

c1 = ['ls']
p1 = subprocess.Popen(c1, stdout=subprocess.PIPE)

c2 = ['wc']
p2 = subprocess.Popen(c2, stdin=p1.stdout,
                      stdout=subprocess.PIPE)

result = p2.stdout.read()

请注意我们如何将 p2 的标准输入设置为 p1 的标准输出。

编辑:简化示例

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用多个管道从 Python 执行 Shell 脚本 的相关文章

  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • 从 scikit-learn 导入 make_blobs [重复]

    这个问题在这里已经有答案了 我收到下一个警告 D Programming Python ML venv lib site packages sklearn utils deprecation py 77 DeprecationWarning
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • 在循环中每次迭代开始时将变量重新分配给原始值(在循环之前定义)

    在Python中 你使用 在每次迭代开始时将变量重新分配给原始值 在循环之前定义 时 也就是说 original 1D o o o for i in range 0 3 new original 1D revert back to orig
  • IRichBolt 在storm-1.0.0 和 pyleus-0.3.0 上运行拓扑时出错

    我正在运行风暴拓扑 pyleus verbose local xyz topology jar using storm 1 0 0 pyleus 0 3 0 centos 6 6并得到错误 线程 main java lang NoClass
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • Pandas Dataframe 中 bool 值的条件前向填充

    问题 如何转发 fill boolTruepandas 数据框中的值 如果是当天的第一个条目 True 到一天结束时 请参阅以下示例和所需的输出 Data import pandas as pd import numpy as np df
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 在Python中重置生成器对象

    我有一个由多个yield 返回的生成器对象 准备调用该生成器是相当耗时的操作 这就是为什么我想多次重复使用生成器 y FunctionWithYield for x in y print x here must be something t
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 协方差矩阵的对角元素不是 1 pandas/numpy

    我有以下数据框 A B 0 1 5 1 2 6 2 3 7 3 4 8 我想计算协方差 a df iloc 0 values b df iloc 1 values 使用 numpy 作为 cov numpy cov a b I get ar
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data

随机推荐

  • ASP.NET Core 2.0 站点 - FileIOException System.Runtime

    一位同事正在为我们的下一份工作整理一些框架项目 这些项目在他的机器上运行良好 并且我们的其中一台开发服务器正在托管开发实例 由于我们刚刚建立 这些项目或多或少是空的 由单个静态 html 文件组成 这些项目在我的开发机器上构建得很好 但一旦
  • Python 3.x 列表理解 VS 元组生成器

    我想使用内存 速度或其他什么原因吗 tuple i for i in range 5000 代替 i for i in range 5000 如果我不介意元组的不变性 基本上 列表理解比生成器表达式更快 因为 它的迭代在 C 中执行 请阅读
  • 按 HTML 实体分割字符串?

    我的字符串包含很多 HTML 实体 就像这样 大家好 大家好 我想按 HTML 实体将其拆分为 Hello大家 there 有人可以建议我一种方法吗 可能正在使用正则表达式 看起来你可以分开 正则表达式 也就是说 分隔符是以以下开头的字符串
  • 货币数据类型精度 - SQL Server (SSMS)

    在sql server management studio中 数据类型 金钱 当我输入带有小数的金额时 它会自动添加零以填充到百分之一 如何确定小数点后的空格数 点后面零的个数称为precision的一种数据类型 这money数据类型有一个
  • Swagger Editor 3.8 示例不适用于参考数组模式

    这个问题是后续问题这个类似的 https stackoverflow com q 52595690 1571426 正如 Helen 要求提出一个新问题 数组类型模式似乎只接受 示例 而不接受 示例 以下架构会产生错误编辑器 swagger
  • Android 8 本机库崩溃

    自从 Android 8 Oreo 推出以来 我们的应用程序一直在不同的地方崩溃 所有 Play 商店崩溃报告都显示本机崩溃 最常出现的一个似乎是在本机库中 最常崩溃的设备是 Google Pixel Pixel XL 也出现过一些崩溃 我
  • Javascript 随机定位 Div 且不重叠它们

    我一直在研究一个随机的概念想法 即让 6 个云出现在一个页面上 并从数据库中提取随机评论 这部分很简单 但我发现确保 6 朵云不相互重叠非常困难 我对碰撞检测进行了很多研究 发现在将新的 随机定位 div 放置在页面上之前 没有真正合适的方
  • 我的车库里真的有一辆车吗? [复制]

    这个问题在这里已经有答案了 我是 Java 编程的新手 正在尝试掌握 OOP 所以我构建了这个抽象类 public abstract class Vehicle 和2个子类 public class Car extends Vehicle
  • 无法解析“adb version”的输出

    我使用 Ubuntu 11 10 和 Eclipse 进行 Android 开发 我已经创建了一个新项目 但它包含错误 Failed to parse the output of adb version 如果有人知道我该如何解决这个问题 我
  • 如何在swift中插入子层?

    我正在创建一个视图并向其添加渐变层 我有这个 import UIKit import QuartzCore let rect CGRect CGRectMake 0 0 320 100 var vista UIView init frame
  • 如何在 Clojure 中更新原子的向量元素?

    我有一个矢量原子 我想更新一个本身就是地图的条目 def vector atom atom swap vector atom conj id 1 name myname 我该如何只更新该成员 在可变的 Java 领域的思维方式中 我会做这样
  • Windows窗体中如何设置滚动条

    我在 net中有一个winform 我放置了太多控件并设置了表单的高度和宽度 但是 当我编译表单并减小表单的大小时 我的控件不可见 当我增加表单的大小时 控件在自己的位置可见 我希望在减小表单大小时出现滚动条 并在增加表单大小时使滚动条消失
  • 将网页中的表格导入 Excel

    我只有中高级的Excel水平和中级的VBA与Excel背景 我想要做的是从链接中显示的网页导入表格 http www admission unmsm edu pe res20130914 A 011 0 html http www admi
  • 如何使用 Spring Batch 进行聚合?

    我想弄清楚如何使用 Spring Batch 进行聚合 例如 我有一个包含姓名列表的 CSV 文件 name John Amy John Ryan 我想要文本文件中的名称计数 name count Amy 1 John 2 Ryan 1 根
  • 如何在错误的 API url 上返回 404? (ASP.NET 核心 + SPA)

    我需要在错误的 api 调用上返回 404 以便我可以在客户端 Angular 5 上为用户创建正确的响应 目前后端返回状态码200和index html 这会导致前端出现json解析错误 我使用 ASP NET Core 2 1 和 An
  • 如何在 JavaScript 中解析文本中的单词?

    在文本页面中 我想检查每个单词 当时阅读每个单词的最佳方式是什么 找到被空格包围的单词很容易 但是一旦你开始解析文本中的单词 它就会变得复杂 是否有一些已经构建的东西可以解析正则表达式或其他方法中的单词 而不是定义我自己的从文本中解析单词的
  • 您应该将应用程序属性放在 rebar erlang 应用程序中的什么位置?

    新手问题 我编写了第一个基于 rebar 的 erlang 应用程序 我想配置一些基本属性 例如服务器主机等 放置它们的最佳位置在哪里以及如何将它们加载到应用程序中 接下来的步骤是发布版本并在其中创建节点 节点在独立的 Erlang VM
  • 有人有使用私有 Launchpad 实例的经验吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有人已经在自己的服务器上安装并运行启动板了吗 我想要建议 因为我在网上找不到任何建议 此外 官方团队还对拥有自己的启动板发表了可怕的言论 他们还
  • 将google云函数连接到oracle数据库

    有谁知道如何将谷歌云函数 Python 连接到Oracle数据库 我尝试在云函数中导入cx Oracle库 但它显示一个错误 函数加载错误 DPI 1047 无法加载 Oracle 客户端库 libclntsh so 无法打开共享对象文件
  • 使用多个管道从 Python 执行 Shell 脚本

    我想在 python 脚本中执行以下 Shell 命令 dom myserver cat etc xen myserver cfg grep limited cut d f2 tr d 我有这个 dom myserver limit sub