从 python 启动 nano 作为子进程,捕获输入

2023-11-30

我试图从Python内部启动一个文本编辑器(nano),让用户输入文本,然后在写出后捕获文本(Control-O)。我没有与subprocess之前没有模块,也没有管道,所以我不知道下一步要尝试什么。

到目前为止我有这个代码:

a = subprocess.Popen('nano', stdout=subprocess.PIPE, shell=True)

Where a应该捕获输出。然而,这段代码并没有启动 nano,而是使 python 终端表现得很奇怪。向上和向下键(历史记录)停止工作,退格键无法正常工作。

有人可以指出我解决这个问题的正确方向吗?我意识到我可能需要阅读 Python 中的管道,但我能找到的唯一信息是pipes模块,它没有多大帮助。


Nano 中的 Control-O 写入正在编辑的文件, i.e., not到标准输出——因此,放弃捕获标准输出的尝试,并在用户写出文件并退出 Nano 后读取文件。例如,在我的 Mac 上:

>>> import tempfile
>>> f = tempfile.NamedTemporaryFile(mode='w+t', delete=False)
>>> n = f.name
>>> f.close()
>>> import subprocess
>>> subprocess.call(['nano', n])

在这里,我写下“Hello world!”然后点击 control-O 返回 control-X ,然后:

0
>>> with open(n) as f: print f.read()
... 
Hello world!


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

从 python 启动 nano 作为子进程,捕获输入 的相关文章

  • Python:多处理和请求

    以下是我正在运行的使用多处理并行触发 HTTP 请求的代码片段 在控制台上运行后 它挂在 requests get url 处 既不继续前进也不抛出错误 def echo 100 q print before r requests get
  • 错误只有 size-1 数组可以转换为 Python 标量

    我有这个代码 for a in data X for i in a if not i isdigit x hash i data X column row x row row 1 row 0 column column 1 desired
  • 如何将经度和纬度转换为国家或城市?

    我需要将经度和纬度坐标转换为国家或城市 python中有这样的例子吗 提前致谢 我使用谷歌的API from urllib2 import urlopen import json def getplace lat lon url http
  • 01 无效令牌[重复]

    这个问题在这里已经有答案了 嘿 学习 python3有一段时间了 遇到字典和dictionary name get 方法并尝试获取随机键值 问题 data data get key 1 它有效并且返回 1 但如果我使用data get ke
  • 在 Python 中比较日期 - 如何处理时区修饰符

    我正在做Python日期比较 假设我有一个这样的约会 Fri Aug 17 12 34 00 2012 0000 我按以下方式解析它 dt datetime strptime Fri Aug 17 12 34 00 2012 0000 a
  • Python:如何重构循环导入

    我有件事可以帮你做engine setState
  • 获取 zeep.exceptions.ValidationError:缺少与 suds 一起使用的方法的元素

    我正在移植开发的代码suds 0 6到zeep 2 4 0 以前的泡沫代码 client Client WSDLfile proxy proxy faults True config client factory create perUse
  • 超时时杀死或终止子进程?

    我想尽可能快地重复执行子进程 然而 有时这个过程会花费太长的时间 所以我想杀死它 我使用 signal signal 如下所示 ppid pipeexe pid signal signal signal SIGALRM stop handl
  • 如何在Python中正确声明ctype结构+联合?

    我正在制作一个二进制数据解析器 虽然我可以依靠 C 但我想看看是否可以使用 Python 来完成该任务 我对如何实现这一点有一些了解 我当前的实现如下所示 from ctypes import class sHeader Structure
  • Python将csv数据导出到文件中

    我有以下运行良好的代码 但我无法修剪数据并将其存储在数据文件中 import nltk tweets love this car this view amazing not looking forward the concert def g
  • 如何在 Numpy 中实现垃圾收集

    我有一个名为main py 它引用另一个文件Optimisers py它仅具有功能并用于for循环进入main py 这些函数都有不同的优化功能 This Optimisers py然后引用另外两个类似的文件 其中也只有函数 它们位于whi
  • 散景中的时间序列流

    我想在散景中绘制实时时间序列 我只想在每次更新时绘制新的数据点 我怎样才能做到这一点 散景网站上有一个动画情节的示例 但它每次都需要重新绘制整个图片 另外 我正在寻找一个简单的示例 我可以在其中逐点绘制时间序列的实时绘图 散景效果0 11
  • 如何从c++调用python

    我是Python新手 我尝试像这样从 C 调用 python 脚本 在 Raspberry Pi 中 std string pythonCommand python Callee py a b int res system pythonCo
  • 从 subprocess.Popen 获取整个输出

    我通过调用 subprocess Popen 得到了一个有点奇怪的结果 我怀疑这与我对 Python 的陌生有很大关系 args cscript USERPROFILE tools jslint js USERPROFILE tools j
  • 对 pandas 数据框中的每一列应用函数

    我如何以更多的熊猫方式编写以下函数 def calculate df columns mean self df means for column in df columns columns tolist cleaned data self
  • 如何在 Pandas 数据框中用 NaN 替换一系列值?

    我有一个巨大的数据框 我应该如何用 NaN 替换一系列值 200 100 数据框 您可以使用pd DataFrame mask https pandas pydata org pandas docs stable generated pan
  • C中的pipe()和fork()

    我需要创建两个子进程 一个子进程需要运行命令 ls al 并将其输出重定向到下一个子进程的输入 而下一个子进程又将对其输入数据运行命令 sort r n k 5 最后 父进程需要读取该数据 已排序的数据 并将其显示在终端中 终端中的最终结果
  • 如何指定一个变量作为类或类实例的成员变量?

    在最新的 Python 2 7 x 中 给定类定义内的任何成员变量 该成员变量是否始终处于类级别 因为它是由该类的所有实例共享的单个变量 在类的定义中 如何指定 类定义中的哪些成员变量属于该类 因此由该类的所有实例共享 以及 哪些属于该类的
  • Python 中的 C 指针算术

    我正在尝试将一个简单的 C 程序转换为 Python 但由于我对 C 和 Python 都一无所知 这对我来说很困难 我被 C 指针困住了 有一个函数采用 unsigned long int 指针并将其值添加到 while 循环中的某些变量
  • 如何获取所有Python标准库模块的列表?

    我想要类似的东西sys builtin module names标准库除外 其他不起作用的事情 sys modules 只显示已经加载的模块 sys prefix 包含非标准库模块并且似乎无法在 virtualenv 内工作的路径 我想要这

随机推荐

  • C#中如何查找数组的众数? [复制]

    这个问题在这里已经有答案了 我想找到数组中的众数 我知道我必须执行嵌套循环来检查每个值并查看数组中元素出现的频率 然后我必须计算第二个元素出现的次数 下面的代码不起作用 请任何人帮助我 for int i 0 i lt x length i
  • Python 2.7 __init__() 仅接受 2 个参数(给定 3 个)

    我有这些课程 Person是父类并且Student是子类 class Person object def init self name self name name class Student Person def init self av
  • 不考虑缺失值的多个文件的平均值

    我想计算 15 个文件的平均值 ifile1 txt ifile2 txt ifile15 txt 每个文件的列数和行数相同 但其中一些缺少值 部分数据看起来像 ifile1 txt ifile2 txt ifile3 txt 3 1 2
  • 使用 Jsoup Java 登录

    如何通过jsoup登录 table border 0 cellpadding 8px tbody tr td align left span style font size 13pt Nome utente span td td align
  • 在asp .net C#中获取返回确认popbox值

    如何获取确认框中按下的值 C Button2 Attributes Add onclick return confirm proceed
  • 如何使用unix命令编辑csv文件中的特定列?

    我想编写一个脚本 每天将新列添加到 csv 工作表中 该脚本将每天运行并将附加到 csv 文件 现在如何编辑 csv 文件 将通过 awk 或 sed 命令进行编辑 我将使用此 csv 文件向用户发送邮件 并将在 Excelsheet 中使
  • 在 Geopandas 中编辑颜色条(图例)?

    我想用我正在创建的 geopandas 世界分区统计 图中的颜色条编辑多个内容 即大小 以便它大致匹配地图本身 文本大小 当前显示太小 我还想为其添加一个标签 通过阅读一些内容 似乎没有简单的方法可以在 geopandas 中明确地做到这一
  • 过滤可以添加到文本框的字符

    我的表单上有一系列文本框 我的客户希望我过滤掉不允许的字符 例如name字段中不能有符号或数字 现在 他想要它 这样当您尝试输入特殊字符时 它就不会被输入到文本框中 我知道这一点的逻辑 但我不确定如何对其进行编码 基本上需要发生的是当用户输
  • Rails 5 - 多个外键属于同一个表

    我有一个属于 LoadingStation 模型的订单模型 并且 LoadingStation 将在 Order 表中使用两次 所以它看起来像 class CreateLoadingStations lt ActiveRecord Migr
  • 使用DiagrammeR 绘制路径图(SEM)

    我正在测试新的DiagrammeR 包用于结构方程模型可视化的功能 My goal is to get a plot like this Perhaps I need to find a ressource on how to specif
  • 使用 PHP 填充 下拉列表? [复制]

    这个问题在这里已经有答案了
  • PHP 会话未在页面之间保存

    我刚刚购买了一些新的服务器空间 并将一个非常简单的 PHP 应用程序迁移到其中 该应用程序在我的其他服务器上运行良好 由于某种原因 会话数据没有存储在新服务器上页面之间的 SESSION 变量中 我看过这篇类似的文章和许多其他人尝试解决这个
  • 访问 Tomcat 服务器上的 Web 应用程序资源时出现 NoSuchMethodError

    在网上搜索后 这是一个我无法找到答案的问题 我的 Web 应用程序已部署到 tomcat 服务器 我知道这一切都在工作 因为 index jsp 显示文本 但是当我尝试访问我制作的资源时 应该打印出 hello world tomcat 服
  • 重现带有双表头的复杂表格

    锁定时间78 days 有对该问题内容的争议此时正在解决 目前不接受新的答案或互动 我想创建下表 Where Alzheimer s Disease Assessment Scale Cognitive ADAS CogT0 Rey Ost
  • 如何在使用 Select 语句时转义 mysql 中的 value 关键字

    我在使用 Select 语句时遇到问题 其中列名称为 值 并且我想根据 值 列检索值SELECT and LIKE运营商 Code SELECT compo clecompo FROM compo compo ON compo clecom
  • 什么时候需要使用类型注释?

    在读的时候数据类型从 Rust Book 中我注意到有时变量是用类型注释定义的 有时则不是 我什么时候应该使用类型注释 let tup i32 f64 u8 500 6 4 1 let tup 500 6 4 1 let months Ja
  • 如何使用 flex json 序列化对象列表?

    我有一个如下所示的对象列表 List
  • 动态链接标签无法打开网站

    我最近开始使用动态组件 它工作得很好 直到我开始使用动态链接标签 所以这是我的问题 我想通过标签链接打开一个网站 但每次我尝试这样做时 它都会破坏程序并给出错误 System ComponentModel Win32Exception pr
  • JavaBean“useBean类属性classes.UserData的值无效”[重复]

    这个问题在这里已经有答案了 我有两个 JSP 和一个 JavaBean 无法正常工作 我使用的是Tomcat 6 0 第一个 JSP 是 GetName jsp 位于 C Tomcat webapps app1 GetName jsp
  • 从 python 启动 nano 作为子进程,捕获输入

    我试图从Python内部启动一个文本编辑器 nano 让用户输入文本 然后在写出后捕获文本 Control O 我没有与subprocess之前没有模块 也没有管道 所以我不知道下一步要尝试什么 到目前为止我有这个代码 a subproce