python subprocess proc.stderr.read() 引入额外的行?

2024-05-26

我想运行一些命令并抓取输出到 stderr 的任何内容。我有两个版本的函数可以执行此操作 版本 1。

def Getstatusoutput(cmd):
    """Return (status, output) of executing cmd in a shell."""

    import sys
    mswindows = (sys.platform == "win32")

    import os
    if not mswindows:
        cmd = '{ ' + cmd + '; }'

    pipe = os.popen(cmd + ' 2>&1', 'r')
    text = pipe.read()
    sts = pipe.close()
    if sts is None: sts = 0
    if text[-1:] == '\n': text = text[:-1]
    return sts, text  

和 版本2

def Getstatusoutput2(cmd):
    proc = subprocess.Popen(cmd, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
    return_code = proc.wait()
    return return_code, proc.stdout.read(), proc.stderr.read()

第一个版本按我的预期打印 stderr 输出。第二个版本在每一行后打印一个空行。我怀疑这是由于版本 1 中的 text[-1:] 行造成的...但我似乎无法在第二个版本中执行类似的操作。谁能解释我需要做什么才能使第二个函数生成与第一个函数相同的输出,而中间(以及最后)没有额外的行?

更新:这是我打印输出的方式 这是我的打印方式

      status, output, error = Getstatusoutput2(cmd)
      s, oldOutput = Getstatusoutput(cmd)
      print "oldOutput = <<%s>>" % (oldOutput)
      print "error = <<%s>>" % (error)

你可以加.strip():

def Getstatusoutput2(cmd):
    proc = subprocess.Popen(cmd, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
    return_code = proc.wait()
    return return_code, proc.stdout.read().strip(), proc.stderr.read().strip()

Python string Docs http://docs.python.org/library/string.html:

string.strip(s[, chars])

返回带有前导和的字符串的副本 删除了尾随字符。如果chars被省略或None, 空格 字符被删除。如果给了而不给None, chars必须是一个字符串; 字符串中的字符将从两端被剥离 调用此方法的字符串。

string.whitespace

包含所有字符的字符串 被认为是空白。在大多数系统上,这包括字符space, tab, linefeed, return, formfeed, and 垂直制表符.

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

python subprocess proc.stderr.read() 引入额外的行? 的相关文章

  • 如何查看Databricks中的所有数据库和表

    我想列出 Azure Databricks 中每个数据库中的所有表 所以我希望输出看起来像这样 Database Table name Database1 Table 1 Database1 Table 2 Database1 Table
  • 无法“安装”plpython3u - postgresql

    我正在尝试在 postgresql 中使用 python 语言 像这样的事情 create or replace function test a integer returns integer as if a 2 0 return even
  • Django 代理模型的继承和多态性

    我正在开发一个我没有启动的 Django 项目 我面临着一个问题遗产 我有一个大模型 在示例中简化 称为MyModel这应该代表不同种类的物品 的所有实例对象MyModel应该具有相同的字段 但方法的行为根据项目类型的不同而有很大差异 到目
  • 通过 Scrapy 抓取 Google Analytics

    我一直在尝试使用 Scrapy 从 Google Analytics 获取一些数据 尽管我是一个完全的 Python 新手 但我已经取得了一些进展 我现在可以通过 Scrapy 登录 Google Analytics 但我需要发出 AJAX
  • Python 中的 Lanczos 插值与 2D 图像

    我尝试重新缩放 2D 图像 灰度 图像大小为 256x256 所需输出为 224x224 像素值范围从 0 到 1300 我尝试了两种使用 Lanczos 插值来重新调整它们的方法 首先使用PIL图像 import numpy as np
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • Python - StatsModels、OLS 置信区间

    在 Statsmodels 中 我可以使用以下方法拟合我的模型 import statsmodels api as sm X np array 22000 13400 47600 7400 12000 32000 28000 31000 6
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • Python 函数可以从作用域之外赋予新属性吗?

    我不知道你可以这样做 def tom print tom s locals locals def dick z print z name z name z guest Harry print z guest z guest print di
  • 如何使用 OpencV 从 Firebase 读取图像?

    有没有使用 OpenCV 从 Firebase 读取图像的想法 或者我必须先下载图片 然后从本地文件夹执行 cv imread 功能 有什么办法我可以使用cv imread link of picture from firebase 您可以
  • Flask如何获取请求的HTTP_ORIGIN

    我想用我自己设置的 Access Control Allow Origin 标头做出响应 而弄清楚请求中的 HTTP ORIGIN 参数在哪里似乎很混乱 我在用着烧瓶 0 10 1 以及HTTP ORIGIN似乎是这个的特点之一object
  • 在f字符串中转义字符[重复]

    这个问题在这里已经有答案了 我遇到了以下问题f string gt gt gt a hello how to print hello gt gt gt f a a gt gt gt f a File
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • Fabric env.roledefs 未按预期运行

    On the 面料网站 http docs fabfile org en 1 10 usage execution html 给出这个例子 from fabric api import env env roledefs web hosts
  • Python:如何将列表列表的元素转换为无向图?

    我有一个程序 可以检索 PubMed 出版物列表 并希望构建一个共同作者图 这意味着对于每篇文章 我想将每个作者 如果尚未存在 添加为顶点 并添加无向边 或增加每个合著者之间的权重 我设法编写了第一个程序 该程序检索每个出版物的作者列表 并
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip

随机推荐

  • 预览来自 url 输入的图像

    我有这段代码 从 url 预览图像 它工作得很好 除了它仅在用户单击输入框外部时运行 我如何更改它 以便在将值放入输入框中时它会立即运行 我需要立即显示图像 我想我需要改变onblur to onchange但我尝试改变它 但没有成功
  • ASP.NET ascx 与 aspx - 您是否重用用户控件?

    我们的团队正在开发一个相当大的 ASP NET Web 项目 该项目最初从 ASP NET 1 0 开始 并多次移植到所有新版本的 NET 我们广泛利用了用户控件 ascx 但现在回想起来 我怀疑这是一个好的决定 这些控件中的一小部分可以通
  • 在经典 ASP 中使用 Response.Write 进行调试

    我正在尝试使用调试一些代码Response Write 但是当我运行代码时 它会跳过该语句并在代码中的某个位置出现错误 我怎样才能得到我的Response Write语句来显示而不会出现其他错误 我经常使用Response End当我必须查
  • 如何使用相对路径链接到另一个本地文件?

    这是一个非常基本的 html 问题 但我似乎找不到答案 我有一个本地文件位于此处 Users Me Desktop Main June foo txt 在位于 Main 目录中的 html 文档中 我可以链接到foo txt使用完整路径的文
  • 如何为 eclipse 添加更多语法元素

    我正在尝试添加更多语法元素Zend Studio为了日食 我想更改等号的颜色 但它没有列出 所以我可以更改它 您可能想投票给http bugs eclipse org 213992 http bugs eclipse org 213992因
  • Flexbox:元素阴影不适用于 order 属性

    我正在尝试使用 CSS3 的 Flexbox 功能创建一个简单的布局 但遇到了一个问题 我无法放置我的阴影nav元素在main元素即使nav元素位于main 我尝试使用order属性 但我不明白为什么nav的影子在下面main html h
  • GridView 仅显示第一个检索到的记录

    我成功地从数据库中检索了我需要的所有记录 但是只有一条记录显示在我的数据库中GridView 在过去的几天里我一直在尝试解决这个问题 因为我没有其他选择可以尝试 所以我真的很沮丧 我迫切需要一些帮助 我尝试操作查询 因为我最初认为这是问题所
  • 如何使用 Promise.all 获取 URL 数组?

    如果我有一个 url 数组 var urls 1 txt 2 txt 3 txt these text files contain one two three respectively 我想构建一个如下所示的对象 var text one
  • 从日志文件 python 创建 csv 标题

    我的日志文件每行都包含一些信息 如下所示 Info1 NewOrder key 123 Info3 10 Info5 abc Info3 10 Info1 OldOrder key 456 Info6 xyz Info1 NewOrder
  • 将图像加载到现有 Mat 中

    有没有办法将图像加载到现有的 Mat 中 如果没有 有没有办法控制 OpenCV 在调用 cv imread 时分配内存的位置 我只是为您的类创建一个构造函数 该构造函数接受 imread 的输入参数并将图像直接加载 并分配 到您的类中 所
  • 关于 Google Apps 在 Gmail 邮件正文中编写内嵌图像脚本

    所以我有一封电子邮件草稿 如下所示 and this is how my email looks after mailing it I can find those images in email as attachment like th
  • 同步不同数据库的2个表-MySQL

    我在数据库表中有一个包含某些医疗信息的表 我每天抓取并解析它们并将其存储在本地数据库的表中 假设最初有 1500 条记录 今天我的本地计算机上又添加了 100 条记录 现在 我有一个服务器 我需要在其中推送这些记录 因此数据库是不同的 我昨
  • 如何在 Linux 中重新添加 unicode 字节顺序标记?

    我有一个相当大的 SQL 文件 它以 FFFE 的字节顺序标记开头 我使用 unicode 感知的 linux 分割工具将此文件分割成 100 000 行块 但是当将这些传递回窗口时 它确实not与第一个部分以外的任何部分一样 只是它具有
  • Shared Web Workers 是否会在单页重新加载、链接导航中持续存在

    共享网络工作者 http www whatwg org specs web apps current work shared workers introduction旨在允许来自同一站点 来源 的多个页面共享单个 Web Worker 但是
  • CreationException:无法在 Play 2.5.18 中创建注入器错误,以使用 com.google.inject.AbstractModule 替换 GlobalSettings Java 代码

    我正在将 Play 应用程序从 2 5 12 升级到 2 5 18 当我启动该应用程序时 使用sbt 我收到此错误 CreationException 无法创建注入器 看到以下错误 1 Error injecting constructor
  • Rails 中是否可以跨多个数据库进行内部联接?

    我很难使用has many through关联 其中一些表位于单独的数据库中 database one class Input lt ApplicationRecord belongs to user Works great end dat
  • 为什么 Chrome 中存在 Document.prototype.getElementsByName?

    我所知 getElementsByName是一个定义在中的函数HTMLDocument and HTMLDocument继承自Document and Document继承自Node 那为什么我能看到Document prototype g
  • Android Studio 2.0 AVD 管理器中缺少 API 14 和 15

    在Android Studio中创建AVD时 列表中缺少API 14和15的系统映像 尽管我实际上在SDK管理器中安装了相应的SDK版本 我认为这个问题是在升级到Android Studio 2 0后出现的 如何为这些 API 版本创建 A
  • 匿名 IComparer 实现

    是否可以定义 IComparer 的匿名实现 我相信 Java 允许内联定义匿名类 C 可以吗 看着这段代码我想定义一个自定义IComparer inline public static IOrderedEnumerable
  • python subprocess proc.stderr.read() 引入额外的行?

    我想运行一些命令并抓取输出到 stderr 的任何内容 我有两个版本的函数可以执行此操作 版本 1 def Getstatusoutput cmd Return status output of executing cmd in a she