将 popen 输出重定向到 python 中的文件

2023-12-24

我看过很多答案stdout=file将重定向到一个文件。但我有几个疑问。

  1. 为什么不>file work.

    subprocess.Popen([SCRIPT, "R", ">", FILE, "2>", "/dev/null"])
    
  2. 这样可以吗

    with open(FILE,'w+') as f:
        subprocess.Popen([SCRIPT, stdout=f]
        f.close()
    

就我而言,我尝试在无限循环中运行脚本(不会停止),并且有一些其他进程监视其输出。

即使 f 关闭后,脚本是否仍继续写入其中。如果是,它是如何运作的?


Because subprocess https://docs.python.org/3/library/subprocess.html#subprocess.Popen不允许使用>从文档中既不重定向输出也不重定向错误消息:

stdin, stdout and stderr分别指定执行程序的标准输入、标准输出和标准错误文件句柄。有效值为PIPE, DEVNULL、一个现有的文件描述符(正整数)、一个现有的文件对象,以及None.

PIPE指示应创建一个通往子级的新管道。DEVNULL表示特殊文件os.devnull将会被使用。默认设置为None,不会发生重定向;子级的文件句柄将从父级继承。

此外,stderr can be STDOUT,这表明来自应用程序的 stderr 数据应该被捕获到与stdout.


并且您应该使用以下代码:

with open(FILE, 'w+') as f:
    subprocess.Popen([SCRIPT, 'R'],  stdout=f, stderr=subprocess.DEVNULL))

因为你正在使用with,所以不需要关闭文件。

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

将 popen 输出重定向到 python 中的文件 的相关文章

  • Python 3.6 DateTime Strptime 返回错误,而 Python 3.7 运行良好

    我刚刚为日期数据创建了一个数据类型 它返回一个datetime datetime object 这是代码 import datetime class Date def new cls dateTime args kwargs return
  • 更改随机森林分类器的阈值

    我需要开发一个没有 或接近没有 假阴性值的模型 为此 我绘制了召回率 精度曲线 并确定阈值应设置为 0 11 我的问题是 如何定义模型训练时的阈值 稍后在评估时定义它是没有意义的 因为它不会反映新数据 X train X test y tr
  • 单台机器最快的 Perl IPC/消息队列是多少?

    我正在开发一个 主要 Perl 项目 并希望使用消息队列来相互隔离进程 我有这样的工作流程 输入 gt 接收器 gt 处理器 gt 输出 我需要每秒处理数百笔交易 所以速度是我最大的动力 对于这种类型的设置来说 最快的消息队列系统是什么 我
  • Pygame 让精灵按照给定的旋转行走

    很久以前我做了一个Scratch脚本 我想用Pygame将其转换为Python 有很多示例显示图像的旋转 但我想知道如何更改精灵的旋转以使其沿给定方向移动 而不更改图像 这是我的暂存代码 这是我的 Pygame 精灵类 class Star
  • 如何仅选择数组中的第一列并对其求和?

    这是我的代码 import numpy as np contrainte1 1080 0 65 minutes tous les jours contrainte2 720 0 55 minutes du lundi au vendredi
  • 如何在python中确定过去的时区特定日期是否是夏令时?

    有没有办法检查特定时区在我指定的日期是否处于夏令时 test dt datetime year 2015 month 2 day 1 pst pytz timezone America Los Angeles test dt pst loc
  • Seaborn regplot 中点和线的不同颜色

    中列出的所有示例西伯恩的regplot文档 https seaborn pydata org generated seaborn regplot html点和回归线显示相同的颜色 改变color争论改变了两者 如何为点设置与线不同的颜色 你
  • 从 Python 将分层 JSON 数据写入 Excel xls?

    我想将一些数据从 python 写入 xlsx 我目前将其存储为 JSON 但它从 Python 中输出什么并不重要 单个文章的 JSON 如下所示 Word Count 50 Key Words Blah blah blah Foo Fr
  • Django 说“id 可能不为 NULL”,但为什么会这样呢?

    我今天要疯了 我只是尝试插入一条新记录 但它返回了 post blogpost id 可能不为 NULL 错误 这是我的模型 class BlogPost models Model title models CharField max le
  • 监控培训课程如何运作?

    我试图理解使用之间的区别tf Session and tf train MonitoredTrainingSession 以及我可能更喜欢其中之一 似乎当我使用后者时 我可以避免许多 杂务 例如初始化变量 启动队列运行程序或设置文件编写器以
  • 如何解决CDK CLI版本不匹配的问题

    我收到以下错误 此 CDK CLI 与您的应用程序使用的 CDK 库不兼容 请将CLI升级到最新版本 云程序集架构版本不匹配 支持的最大架构版本为 8 0 0 但发现为 9 0 0 发出后cdk diff命令 我确实跑了npm instal
  • 如何在python mechanize中设置cookie

    向服务器发送请求后 br open http xxxx br select form nr 0 br form MESSAGE 1 2 3 4 5 br submit 我得到了响应标题 其中包含 set cookie Set Cookie
  • 为什么在 __init__ 函数中声明描述符类会破坏描述符功能?

    在下面的 B 类中 我想要 set 每当您赋值给 A 类中的函数时 就会调用该函数B a 相反 将值设置为B a覆盖B a与价值 C类分配给C a工作正常 但我想为每个用户类都有一个单独的 A 实例 即我不想在 C 的一个实例中更改 a 来
  • Scapy:如何将新层(802.1q)插入现有数据包?

    我有一个数据包转储 想要将 VLAN 标记 802 1q 标头 注入到数据包中 怎么做 为了找到答案 我查看了Scapy 插入新层和记录问题 https stackoverflow com q 17259592 1381638 这确实很有帮
  • Python 可选参数对

    我正在使用argparse模块获取两个可选的命令行参数 parser add argument start date nargs metavar START DATE help start date in YYYY MM DD parser
  • python lxml 使用iterparse编辑并输出xml

    我已经在 lxml 库上摆弄了一段时间了 也许我没有正确理解它 或者我错过了一些东西 但我似乎无法弄清楚在捕获某个 xpath 后如何编辑文件并且然后能够在逐个元素解析时将其写回到 xml 中 假设我们有这个 xml 作为示例
  • 如何删除 pip 安装的所有软件包?

    如何从当前激活的虚拟环境中卸载 pip 安装的所有软件包 我发现这个片段作为替代解决方案 与重新创建 virtualenv 相比 删除库更加优雅 pip freeze xargs pip uninstall y 如果您通过 VCS 安装了软
  • 给定一个字符串,如何删除所有重复的连续字母?

    如何从字符串中删除两个连续的字母 例如 a str hii thherre 应该成为 hi there 我尝试这样做 a str join sorted set a str key a str index 但是 我得到 hi ter 是的
  • 如何正确将 tflite_graph.pb 转换为 detector.tflite

    我正在使用tensorflow对象检测API使用tensorflow中的ssdlite mobilenet v2 coco 2018 05 09来训练自定义模型模型动物园 https github com tensorflow models
  • “yield item”与 return iter(items) 相比有何优点?

    在下面的示例中 resp results 是一个迭代器 版本1 items for result in resp results item process result items append item return iter items

随机推荐

  • 将 N 层应用程序重建为面向服务的架构 (SOA)?

    考虑到 n 层应用程序的常规特征 其中包括 表示层 业务层 数据访问层 这通常怎么样rebuilt打造面向服务的架构 SOA 向在此练习中经验丰富的程序员寻求高层次的概述 在某种程度上 我认为它在概念上是扁平化的 而不是有一个垂直的堆栈 或
  • 如何在jquery中引用外部“$(this)”?

    假设我有这样的代码 myClass each function this attr id Suffix livequery click function doSomething this The this 我传递给doSomething函数
  • Crashlytics:存档分发错误:-3

    由于最新的版本 当我尝试将版本上传到 Crashlytics 时 我总是收到以下错误消息 存档分发错误 3 Could not upload the distribution The operation couldn t be comple
  • 如何使用滑动刷新布局刷新 Firestore 分页适配器中的数据

    我正在构建一个应用程序 我想从 Firestore 获取数据并在用户滚动时将其显示在 recyclerview 中 我正在使用 FirestorePagingAdapter 如下所述 https github com firebase Fi
  • 打印窗口第一次不工作

    我正在尝试使用打印选项保存 PDF 但由于某种原因 第一次它不起作用 它会显示一个空白页面 我有Googled https stackoverflow com questions 30775679 print window not work
  • Symfony 2 带有容器参数的路由注释

    我正在尝试将 yml 路由 移植 到注释 在 yml 中我有路线 homepage foo pattern foo defaults controller FooBundle Homepage foo schemes httpProtoco
  • 将 DBContext 转换为 ObjectContext 以与 GridView 一起使用

    我有一个使用 EF codefirst 来保存数据的 Webforms 项目 我想使用 GridView 和 EntityDataSource 以节省编写 CRUD 的时间 这可能吗 我可以将 DBContext 转换为 EntityDat
  • Xcode 中 2 个第三方库出现重复符号问题

    我正在尝试编译一个依赖于 2 个第三方静态库的项目 问题是 两个第三方都在其静态库分发中包含了相同的一组 实用 类 这意味着当将两者添加到我的项目中时 我会收到数十个重复的符号错误 有没有办法让我以某种方式强制项目编译和 或忽略重复符号之一
  • 如果可放置项目在拖动操作期间显示,则不会显示悬停类

    我知道标题很令人困惑 但问题很容易重现 我的页面上有一些可放置的元素 jQueryUI 当它们被拖过时 hoverClass 会显示 但是 我有一些隐藏元素 有时会在拖动过程中显示 然后不会像应有的那样响应它们的hoverClass 我有一
  • css 单行或多行垂直对齐

    我的标题可以有一行或多行 如何垂直对齐文本 如果它总是一行 我可以将行高设置为容器高度 我可以使用 JavaScript 来做到这一点 但我不太喜欢它 我正在寻找一种纯 CSS 的方式 另外 如果容器可以随着线条扩展那就完美了 这样我就可以
  • 使用 Javascript 签名密钥 HMAC SHA1

    由于某种原因 我无法从 JS 中的私钥创建签名 使用谷歌的在线帮助 https m4b url signer appspot com https m4b url signer appspot com URL 示例密钥 为了练习的目的是假的
  • 默认的 Move 构造函数是否定义为 noexcept?

    看起来向量会在重新分配时决定是否移动或复制元素之前检查移动构造函数是否标记为 noexcept 默认的移动构造函数是否定义为 noexcept 我看到了以下文档 但没有具体说明这一点 http en cppreference com w c
  • 将数组数组导出为 CSV

    我正在尝试循环遍历多维数组以将其导出到 CSV 我尝试复制一些在线指南 大多数似乎都显示了类似的解决方案如何将 JavaScript 数组信息导出到 csv 在客户端 https stackoverflow com questions 14
  • Android Studio Fragment 类型不兼容错误

    import android support v4 app Fragment import android support v4 app FragmentManager import android support v4 app Fragm
  • ENOMEM创建线程失败的原因?

    我有一个正在使用的应用程序pthread create and pthread detach 在主线程和稍后pthread exit 在子线程中 54 左右后pthread create 每个调用都与后续的调用配对pthread detac
  • 使用 EKEventStore 从 iPhone 日历中删除事件

    我正在尝试从 iPhone 日历中删除我创建的事件 我尝试了这个 但它总是返回 否 eventStore removeEvent event span EKSpanThisEvent error err 我按如下方式创建了该事件并且它有效
  • 如何调试 AsyncTask 的 doInBackground 代码

    我设置了断点 但它们似乎被忽略 或从未见过 我的代码如下 我正在尝试将 sql 数据库备份到 SD 卡 当我在 Eclipse 中运行它 不是调试模式 时 我从 onPreExecute 收到消息 然后很快就收到来自 onPostExecu
  • 在 Django 管理中,我可以要求模型中的字段,但当它是内联时则不行吗?

    在 django admin 中 如果要独立编辑模型 我需要一些字段 如果它是内联的 我不希望它们是必需的 有没有办法做到这一点 虽然丹尼尔 罗斯曼的答案有效 但这并不是最好的解决方案 由于必须重新声明表单字段 因此需要一些代码重复 例如
  • 如何处理数据库中的多态性?

    Example I have Person SpecialPerson and User Person and SpecialPerson只是人 他们在网站上没有用户名或密码 但他们存储在数据库中以保存记录 用户拥有与以下所有相同的数据Pe
  • 将 popen 输出重定向到 python 中的文件

    我看过很多答案stdout file将重定向到一个文件 但我有几个疑问 为什么不 gt file work subprocess Popen SCRIPT R gt FILE 2 gt dev null 这样可以吗 with open FI