使用 python pty 伪终端进程发送命令并退出

2024-03-31

使用 python pty 模块,我想使用 stdin 函数(如 pty 模块想要的那样)向终端模拟器发送一些命令,然后强制退出。我想到了类似的事情

import pty
cmnds = ['exit\n', 'ls -al\n']
# Command to send. I try exiting as last command, but it doesn't works.

def r(fd):
    if cmnds:
        cmnds.pop()
        # It seems is not executing sent commands ('ls -al\n')
    else:
        # Can i quit here? Can i return EOF?
        pass

pty.spawn('/bin/sh', r)

谢谢


首先,pty模块不允许您与运行 Python 的终端仿真器进行通信。相反,它允许 Python 假装be终端模拟器。

查看源代码pty.spawn(),看起来它的设计目的是让派生进程在运行时接管 Python 的 stdin 和 stdout,这不是你想要的。

如果您只想生成一个 shell,向其发送命令并读取输出,您可能需要 Pythonsubprocess模块(特别是,如果您只想运行一个命令,则subprocess.Popen class' .communicate()方法会有帮助)。

如果您确实需要子进程在 pty 而不是管道中运行,您可以使用os.openpty()分配主文件描述符和从文件描述符。使用从属文件描述符作为子进程的标准输入和标准输出,然后将命令写入主文件描述符并从中读回响应。

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

使用 python pty 伪终端进程发送命令并退出 的相关文章

  • 如何在 Python 中使这个随机文本生成器更加高效?

    我正在研究一个随机文本生成器 不使用马尔可夫链 目前它的工作没有太多问题 首先 这是我的代码流程 输入一个句子作为输入 这称为触发字符串 被分配给一个变量 获取触发字符串中最长的单词 在所有古腾堡计划数据库中搜索包含该单词的句子 无论大写还
  • Python - Pandas - 将特定函数应用于给定级别 - 多索引数据帧

    我有一个多索引 DataFrame 并且我希望仅对分配给我的级别之一的向量应用一些计算 使用下面的代码 import pandas as pd import datetime ticker date US datetime date tod
  • 使用列中的日期范围扩展 pandas 数据框

    我有一个 pandas 数据框 其日期和字符串与此类似 Start End Note Item 2016 10 22 2016 11 05 Z A 2017 02 11 2017 02 25 W B 我需要将其扩展 转换为以下内容 在之间填
  • 如何在基于其他数据帧的数据帧中创建联接?

    我有 2 个数据框 一份包含学生批次详细信息 另一份包含分数 我想加入 2 个数据框 数据框1包含 s1 s2 s3 Stud1 Stud2 Stud3 Stud2 Stud4 Stud1 Stud1 Stud3 Stud4 数据框2包含
  • 在 Python 中静默打印 PDF

    我正在尝试使用 Python 打印 PDF 而不打开 PDF 查看器应用程序 Adobe Foxit 等 我还需要知道打印何时完成 以删除文件 Here http permalink gmane org gmane comp python
  • 根据日期列过滤并创建列

    我有一个样本数据如下 date Deadline 2018 08 01 2018 08 11 2018 09 18 2018 12 08 2018 12 18 我想用代码中描述的条件填写截止日期列 如 1 DL 2 DL 3 DL 等 基于
  • 根据另一个非索引数组中的值从 numpy 数组中选择元素

    假设我有以下两个数组 a array 1 L 74 423088306605 5 H 128 05441039929008 2 L 68 0581377353869 0 H 88 15726964130869 4 L 97 45015825
  • Dataframe unstack 性能 - pandas

    我正在尝试拆开数据框 它工作正常 但问题是我正在处理 CSV 文件中的巨大数据集 约 10 亿 这是示例数据集 236539 48512569874 Name Danny 236539 48512569874 Class 12 236539
  • Groupby Sum 忽略几列

    在此数据框中 我想按 位置 进行分组并获得 分数 的总和 但我不希望 纬度 经度 和 年份 在此过程中受到影响 sample pd DataFrame Location A B C A B C Year 2001 2002 2003 200
  • 如何使用httplib2进行相互证书认证

    我正在使用 httplib2 从我的服务器向另一个 Web 服务发出请求 我们想要使用相互证书身份验证 我了解如何使用证书进行传出连接 h set certificate 但是如何检查应答服务器使用的证书 这张票 http code goo
  • CTRL-C 在 Python 中的行为有所不同

    I ve recently started learning Python long time Java programmer here and currently in the process of writing some simple
  • 如何检测斑点并将其裁剪成 png 文件?

    我一直在开发一个网络应用程序 我陷入了一个有问题的问题 我会尝试解释我想要做什么 在这里您看到第一个大图像 其中有绿色形状 我想要做的是将这些形状裁剪成不同的 png 文件 并使它们的背景透明 就像大图像下面的示例裁剪图像一样 第一张图像将
  • 在视图之间共享并在 AppConfig 中初始化的变量

    我想要一个在应用程序启动时初始化的变量 并且可以从视图访问该变量 my app my config py class WebConfig AppConfig name verbose name def ready self print lo
  • 为什么Python安装程序不断弹出?

    每当我尝试运行 Python 文件时 都会自动弹出此窗口 虽然 我可以关闭它 但有时它会连续打开 7 10 个窗口 这令人恼火 谁能告诉我为什么会发生这种情况 None
  • 适用于 Python 的 GitLab CI 共享 Windows 运行器

    我在 GitLab 中有一个 python 项目仓库 我看到 GitLab 共享了可用的测试版 Windows 运行程序 请参阅this https about gitlab com blog 2020 01 21 windows shar
  • 将 scipy 稀疏矩阵的几行采样到另一个中

    如何对 scipy 稀疏矩阵的某些行进行采样 并从这些采样的行中形成一个新的 scipy 稀疏矩阵 例如 如果我有一个 10 行的 scipy 稀疏矩阵 A 并且我想创建一个新的 scipy 稀疏矩阵 B 其中 A 的第 1 3 4 行 该
  • 使用 Python 3.x 基本获取 URL 的 HTML 正文

    我是Python新手 我对 Python 2 x 中的旧 urllib 和 urllib2 与 Python 3 中的新 urllib 之间的差异有点困惑 除此之外 我不确定数据在发送到 urlopen 之前何时需要编码 我一直在尝试使用
  • 如何提高大规模数据帧上 lambda 函数的性能

    我有一个df超过数亿行 latitude longitude time VAL 0 39 20000076293945312500 140 80000305175781250000 1972 01 19 13 00 00 1 2000000
  • 加载腌制字典对象或加载 JSON 文件哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 什么更快 A Unpickling 加载 一个 pickled 字典对象 使用pickle load or B 使用以下命令将 JSON
  • 在 C# 中读取/写入命令行程序

    我正在尝试与 C 的命令行程序进行对话 它是一个情绪分析器 它的工作原理如下 CMD gt java jar analyser jar gt Starting analyser 这是我想从我的 C 程序插入内容的地方 例如 I love y

随机推荐

  • 列表子列表优化

    问题是从给定列表中查找不包含大于指定上限数字的子列表总数right并且子列表的最大数量应该大于下限left假设我的清单是 x 2 0 11 3 0 子列表元素的上限是10下界是1那么我的子列表可以是 2 2 0 3 3 0 因为子列表始终是
  • Interlocked.Exchange 可空小数

    我想交换两个可为空的十进制值 如下所示 o2 Interlocked Exchange ref o1 o2 类型 十进制 必须是引用类型才能将其用作泛型类型或方法 System Threading Interlocked Exchange
  • 尝试在单独的实例中打开工作簿

    不确定我做得是否正确 请建议我 我正在尝试在新实例中打开一本工作簿 但有些地方效果不太好 下面是代码供您参考 我正在尝试在新实例中打开名为 Loginfrm 的表单 假设如果另一个工作簿已打开 则当前代码也会冻结该工作簿 理想情况下 这不应
  • 添加/删除程序中的 Wix 图标

    我正在使用 Wix 来创建我的安装程序 据官方称文档 http wixtoolset org documentation manual v3 howtos ui and localization configure arp appearan
  • 访问路径被拒绝 (Xamarin/Android)

    我运行的是 Windows 10 Visual Studio 2015 和 Xamarin 我对 Xamarin 相当陌生 只是为了设置地面水平 我最近更新后遇到了一个问题 我的应用程序在更新之前可以正常运行 我的所有文件都是只读的 更新之
  • 尝试使用 Jersey 创建 REt 服务

    我正在关注this http www vogella com articles REST article html first使用 Jersey 创建 REt 服务的教程 有时我无法完全理解本教程作者的意思 但这些是我到目前为止所遵循的步骤
  • lit-element 将数据从一个组件传递到另一个组件

    我目前正在学习如何使用 lit element v2 0 0 rc 2 我有两个组件 app js 和 list items js 在 app js 中 我从本地存储收集数据并将其存储在 this todoList 中 然后我在 list
  • Python 多处理性能

    这应该是我的第三个也是最后一个问题 涉及我尝试提高使用 python 进行的一些统计分析的性能 我的代码有 2 个版本 单核与多处理 我希望通过使用多个核心来获得性能 因为我希望我的代码能够解压 解压相当多的二进制字符串 遗憾的是我注意到使
  • 颜色分类库[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Status 我正在开发自己的图书馆 https stackoverflow com question
  • 响应式设计,网站在手机上不滚动

    我正在设计一个响应式网站 它在桌面上运行良好 但当我在手机中测试时 我无法滚动页面 所以我只能看到适合设备高度的内容 注意 我什至包含了元名称 viewport 内容 宽度 设备宽度 initial scale 1 0 请帮我 你问这个问题
  • 使用 Keras 循环神经网络进行预测 - 准确度始终为 1.0

    TLDR 如何使用 Keras RNN 预测序列中的下一个值 我有一个连续值列表 我想将它们输入 RNNpredict序列中的下一个值 0 43589744 0 44230769 0 49358974 0 71153846 0 708333
  • PHP 脚本到 Traceroute?

    我有一个在 GoDaddy 共享 Linux 服务器上运行 PHP 的网站 我需要确定用户是否连接到公司 VPN 如果我简单地执行 SERVER REMOTE ADDR 它会给我客户端的 IP 地址 但是 如果我可以使用 Tracert 进
  • 无法使用 R 的 leaflet 包循环生成多个地图

    这是新来的 对 R 来说也相对较新 所以请原谅 apriori 并让我知道我在这篇文章中做错了什么 以避免将来烦扰其他人 我正在尝试创建传单地图序列 1971 年 9 月至 1972 年 4 月 最后 我想将它们压缩成闪亮的 并让用户播放
  • chrome.storage.local.set 使用变量键名

    在 Google Chrome 扩展中 我想使用chrome storage local http code google com chrome extensions storage html property local 与 localS
  • Xcode 7.2.1 的问题

    刚刚安装新版本的Xcode 7 2 1 他花了比预期更长的时间 但是当它完成并运行时 xcode 继续使用版本 7 1 1 我以为重启Mac就可以解决这个问题 但是没有 知道可以花什么吗 或者碰巧我已经完成了 EDITED 我的MAC版本
  • 如何修复从底部切掉的字体?

    我在应用程序中有自定义字体 我正在使用它Text如下 struct CustomButton View var label String var action gt Void init label String action escapin
  • Windows Phone Soap/添加 Web 参考问题

    我有一个 SOAP 由 Java 提供支持 服务 我正在尝试连接到 WP7 使用Add gt Service Reference生成代理客户端 但不幸的是 删除了 WP7 和 完整 NET 4 上方法的所有参数 使用 slsvcutil e
  • 原始计算器 - 动态方法

    我在获得以下问题的正确解决方案时遇到一些困难 你的目标是一个正整数n 找到最少的数量 从数字 1 开始获取数字 n 所需的操作 更具体地说 我在下面的评论中有测试用例 Failed case 3 16 Wrong answer got 15
  • 如何连接故事板中的原型单元?

    我在故事板中创建了一个表格视图 以及一个自定义原型单元 我已经在情节提要中设置了单元格标识符 并尝试将其出队并得到 无法使具有标识符 TTEntry 的单元出列 必须为标识符注册笔尖或类 或者连接故事板中的原型单元 我在情节提要 Table
  • 使用 python pty 伪终端进程发送命令并退出

    使用 python pty 模块 我想使用 stdin 函数 如 pty 模块想要的那样 向终端模拟器发送一些命令 然后强制退出 我想到了类似的事情 import pty cmnds exit n ls al n Command to se