运行包含 Pipes 的命令行并将结果显示到 STDOUT

2024-04-19

如何从 Python 调用包含管道的 shell 命令并捕获输出?

假设命令类似于:

cat file.log | tail -1

我想做的 Perl 等效项是这样的:

my $string = `cat file.log | tail -1`;

使用 subprocess.PIPE,如子流程文档部分中所述《更换外壳管道》 http://docs.python.org/library/subprocess.html#replacing-shell-pipeline:

import subprocess
p1 = subprocess.Popen(["cat", "file.log"], stdout=subprocess.PIPE)
p2 = subprocess.Popen(["tail", "-1"], stdin=p1.stdout, stdout=subprocess.PIPE)
p1.stdout.close()  # Allow p1 to receive a SIGPIPE if p2 exits.
output,err = p2.communicate()

或者,使用sh module https://github.com/amoffat/sh,管道变成函数的组合 http://amoffat.github.io/sh/#piping:

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

运行包含 Pipes 的命令行并将结果显示到 STDOUT 的相关文章

  • Python:urlretrieve PDF下载

    我在 Python 中使用 urllib 的 urlretrieve 函数来尝试从网站上获取一些 pdf 它 至少对我来说 已停止工作并正在下载损坏的数据 15 KB 而不是 164 KB 我已经用几个 pdf 对此进行了测试 但都没有成功
  • python中unicode字符串到ascii字符串的近似转换

    不知道这是否微不足道 但我需要将 unicode 字符串转换为 ascii 字符串 并且我不希望周围有所有这些转义字符 我的意思是 是否有可能 近似 转换为一些非常相似的 ascii 字符 例如 Gavin O Connor 转换为 Gav
  • C++ 相当于 Python getattr

    在Python中 有一个名为getattr的函数 它看起来像这样 class MyObject def init self self xyz 4 obj MyObject getattr obj xyz 其中对 getattr 的调用将返回
  • from __future__ importabsolute_import 实际上做了什么?

    I have answered https stackoverflow com a 22679558 2588818一个关于Python中绝对导入的问题 我认为我通过阅读理解了这个问题Python 2 5 变更日志 https docs p
  • python列表理解和extend() [重复]

    这个问题在这里已经有答案了 深入学习 Python 2 7 1 但未能理解这一点 几个小时 gt gt gt a 1 2 gt gt gt b 3 4 gt gt gt gt gt gt a extend b 0 gt gt gt a 1
  • Python中的键盘可中断阻塞队列

    It seems import Queue Queue Queue get timeout 10 键盘可中断 ctrl c 而 import Queue Queue Queue get 不是 我总是可以创建一个循环 import Queue
  • 将管道输入转储到文件的简单方法是什么? (Linux)

    我正在寻找一个小 shell 脚本 它可以将任何内容通过管道传输到其中 并将其转储到文件中 用于电子邮件调试目的 有任何想法吗 unix 命令 tee 可以做到这一点 man tee
  • 如何从 python 脚本更改 python 文件中的变量值

    我目前有一个 python 文件 其中包含一堆带有值的全局变量 我想从一个单独的 python 脚本永久更改这些值 我尝试过 setattr 等 但似乎不起作用 有没有办法做到这一点 简短的回答是 不 不值得这么麻烦 听起来您正在尝试创建一
  • 多级QTreeView

    我很难理解如何使用 QTreeView 和 QStandardItemModel 设置多级 QTree 这是我所拥有的 from PySide QtGui import import sys class MainFrame QWidget
  • 模拟导入失败

    我该如何制作import pkg失败moduleA py 我可以打补丁pkg如果从中导入某些内容则会失败 否则不会失败 test py import os import moduleA from unittest mock import p
  • 将 pandas DataFrame 与 Series 进行比较

    我看过this https stackoverflow com questions 26285661 working with comparing dataframes and series and generating new dataf
  • 在 Django 1.9 中使用信号

    在 Django 1 8 中 我能够使用信号执行以下操作 一切顺利 init py from signals import 信号 py receiver pre save sender Comment def process hashtag
  • 有没有更快的方法将数字转换为名称?

    以下代码定义了映射到数字的名称序列 它的设计目的是获取一个号码并检索一个特定的名称 该类通过确保名称存在于其缓存中来进行操作 然后通过索引到其缓存中来返回名称 问题在这 如何在不存储缓存的情况下根据数字计算出名称 该名称可以被认为是一个以
  • 让垂直网格线出现在 matplotlib 的线图中

    我想在绘图上同时获得水平和垂直网格线 但默认情况下仅显示水平网格线 我正在使用一个pandas DataFrame从 python 中的 sql 查询生成 x 轴上带有日期的线图 我不知道为什么它们没有出现在日期上 我试图寻找这个问题的答案
  • 为什么删除 DataFrame 的列或部分会增加内存使用量,以及如何确保对未使用的 DataFrame 切片进行垃圾回收

    处理大型 DataFrame 时 您需要小心内存使用情况 例如 您可能想要分块下载大数据 处理这些块 然后从内存中删除所有不必要的部分 我找不到任何有关处理垃圾收集的最佳程序的资源pandas 但我尝试了以下方法并得到了令人惊讶的结果 im
  • 传递宏作为参数 jinja dbt

    Today date milliseconds 是我在项目中的宏 如何将此宏重定向为参数 以便默认情况下我可以在 yml 中编写另一个宏 test valid date model column name exclude condition
  • 嵌套 for 循环以列出具有不同“if”条件的理解

    我正在尝试将此嵌套循环转换为列表理解 但我不确定是否可能 因为 tmp 列表中的项目可能有不同的值 这是最好的方法吗 谢谢 final for a in range 13 1 for b in range 0 4 for c in rang
  • 如何在Python中检查元组是否包含元素?

    我试图找到可用的方法 但找不到 没有contains 我应该使用index 我只想知道该项目是否存在 不需要它的索引 You use in if element in thetuple whatever you want to do
  • Snakemake根据字典输入和输出

    我正在尝试重命名 Snakemake 管道中的一些文件 假设我有三个文件 FileA txt FileB txt FileC txt 我希望根据字典重新命名它们dict A 0 B 1 C 2 to get RenamedFile0 txt
  • Python list.extend() 是保序的吗?

    我想知道扩展函数是否保留两个列表中的顺序 gt gt list 1 2 3 gt gt list extend 4 5 gt gt list 1 2 3 4 5 扩展总是这样工作吗 Yes list extend just extends给

随机推荐

  • 如何在 SQLite 中将毫秒转换为日期

    我将 Calendar getTimeInMilliseconds 中的日期存储在 SQLite DB 中 我需要在 SELECT 语句中按每个月标记第一行 因此我需要仅使用 SQLite 函数将时间 以毫秒为单位 转换为任何日期格式 我怎
  • 切换 C++ 函数的调用堆栈

    这是我的上一个问题 https stackoverflow com questions 1371547 explanation of asm code关于切换 C 调用堆栈 但是 C 使用不同的调用约定 thiscall 并且可能需要一些不
  • Javascript:删除最后一个字符(如果是冒号)

    Javascript 的相对新手 正在寻找一种方法来删除字符串的最后一个字符 如果它是冒号 I know myString myString replace 将适用于行的开头 但不知道如何交换 字符更改为行尾 任何人都可以纠正它吗 Than
  • R 中函数的运算符重载 - 奇怪的行为

    不幸的是像这样的事情 f g 3 其中 f 和 g 都是一元函数 在 R 中不起作用 因此 我尝试通过以下方式重载一元函数的 运算符 function function e1 e2 return function x e1 x e2 x 但
  • Git - 进一步重新合并

    合并与变基的主要缺点是合并会导致树混乱 如果 master 经常被更新 那么每次有重大更新时合并 mastery 将创建大量不必要的提交 现在 大多数时候 实际上没有任何必要 考虑存储库如下 Master A B C D E Branch
  • Gitlab代码审查批量评论?

    在Gitlab中进行代码审查时是否可以获取批量注释 与 Phabricator 类似 当审阅者对您的代码进行多条评论时 您只会收到一封电子邮件 我们正在尝试在工作中使用 Gitlab 但感觉每条评论的单独电子邮件都像垃圾邮件一样 Thank
  • 启动服务的小部件也会启动主要活动

    我有一个应该启动和停止服务的小部件 在不运行时启动它 在运行时停止它 这工作正常 但是 每次启动服务时 我的应用程序的主要活动也会启动 这是我不想要的 如果我删除 MAIN intent filter
  • 如何在 Laravel 4 中注册命名空间

    问题 PostController php 中第 4 行未找到类 PostRepostioryInterface 或者在修改命名空间时我什至得到了类 找不到应用 模型 接口 PostRepositoryInterface 问题 如何在 la
  • C# - 优雅的列表分区方式?

    我想通过指定每个分区中的元素数量将列表分区为列表列表 例如 假设我有列表 1 2 11 并且希望对其进行分区 使每个集合都有 4 个元素 最后一个集合填充尽可能多的元素 生成的分区将类似于 1 4 5 8 9 11 怎样写才是优雅的方式呢
  • 将通用列表转换为特定类型

    我有一个包含一些值的列表 Example List testData new List testData Add new List aaa bbb ccc testData Add new List ddd eee fff testData
  • 触发器 - 是否有必要 BEGIN / COMMIT TRAN

    我想像这样创建 INSTEAD OF 触发器 CREATE TRIGGER dbo DeleteCompany ON dbo Company INSTEAD OF DELETE AS DECLARE CompanyID int SELECT
  • FacebookRequest::execute() 未包含在 facebook sdk 中

    下载后facebook 的 php sdk https github com facebook facebook php sdk v4 archive 5 0 0 zip我试图运行下列的 https developers facebook
  • 类“属性”与“成员”与“变量”与“字段”的术语[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 似乎开发人员在引用存储在类实例中的数据时经常互换使用这些术语 每个术语之间是否存在技术差异 或者可以互换使用它们吗 根据不同的答案 类
  • 为什么带有子模块和名称冲突的函数的模块可以工作?

    这是我想知道的代码 mod a pub mod b pub fn b println b pub use self b b use a b fn main b b b 为什么b b 工作 模块不应该吗b和函数b冲突 这是否意味着a b不知何
  • 如何在 igraph R 中创建自循环?

    如何添加self loop除了改变之外的图表Adjacency matrix这正在改变c i i 1 有没有一个函数可以做到这一点igraph R包裹 Edit 图形创建 network read csv file choose netwo
  • pyaudio 可以同时演奏两个音符吗?

    可以使用 pyaudio 演奏和弦吗 当然 只需生成结果并将其传递给玩家即可 本文介绍了一种实现此目的的方法 http davywybiral blogspot com br 2010 09 procedural music with py
  • FMDB ios 没有这个表

    我正在做的 sqlite 项目有问题 我正在使用 FMDB 我遵循一个简单的示例 但不起作用 而且我找不到错误 我从终端创建了数据库模式 并在上面放置了一些数据 我对 ios 开发非常陌生 所以我不知道我是否正确执行了这些步骤 这就是我所做
  • Tkinter - 窗口焦点丢失事件

    是否有事件触发tkinter窗口失去可以绑定到的焦点tkinter窗口使用 bind method 您正在寻找的活动是
  • r 中的循环问题: if (length[i] == 1) { 中的错误:缺少 TRUE/FALSE 需要的值

    ann lt 1 2500 len lt sample 1 3 1000 replace TRUE df lt data frame col1 c 1 2500 col2 c 1 2500 for i in 1 length ann if
  • 运行包含 Pipes 的命令行并将结果显示到 STDOUT

    如何从 Python 调用包含管道的 shell 命令并捕获输出 假设命令类似于 cat file log tail 1 我想做的 Perl 等效项是这样的 my string cat file log tail 1 使用 subproce