Python 从子进程调用 raw_input

2024-04-22

我正在使用 subprocess 从下面的脚本中调用 python 脚本。用户从命令行使用 raw_input 选择要打开的文件

import optparse
import subprocess
import readline
import os

def main():

    options = {'0': './option_0.py',
            '1': './option_1.py',
            '2': './option_2.py',
            '3': './option_3.py'}
    input = -1

    while True:
        if input in options:
            file = options[input]
            subprocess.Popen(file)
        else:
            print "Welcome"
            print "0. option_0"
            print "1. option_1"
            print "2. option_2"
            print "3. option_3"
            input = raw_input("Please make a selection: ")

if __name__ == '__main__':
    main()

但是,在调用的子进程(例如调用 option_1.py)上,我再次使用 raw_input 接受用户的提示时遇到问题。我知道 .PIPE 参数并尝试过

subprocess.Popen(file, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

但还是没有运气。


这是子流程接收我的输入的示例:

import subprocess
import sys

command = 'python -c \'print raw_input("Please make a selection: ")\''
sp = subprocess.Popen(command, shell = True, stdin = sys.stdin)
sp.wait()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 从子进程调用 raw_input 的相关文章

随机推荐

  • 使用 HTML5sortable 序列化 AJAX 数据

    我正在使用一个简洁的 jQuery 排序插件 HTML5 Sortablehttp farhadi ir projects html5sortable http farhadi ir projects html5sortable 但还没有找
  • OpenGL 将着色器附加到程序

    有没有办法访问附加到程序的着色器 也就是说 给定一个程序 我可以做类似的事情 vertexShader getVertexShaderFromProgram program 我想在验证我的程序的函数中记录着色器编译状态 但我只保留对程序的引
  • 指定回归线截距(R & ggplot2)

    背景 我当前的情节如下所示 PROBLEM 我想强制 station 1 的回归线从 1 开始 CODE library ggplot2 READ IN DATA var x c 2001 2002 2003 2004 2005 2006
  • 颤振上的 ERROR_ALREADY_REQUESTING_PERMISSIONS

    我使用 flutter 创建一个 android 应用程序 在应用程序运行时第一次创建权限请求 因此当用户单击拒绝然后单击登录按钮时 会再次请求权限 我收到这个错误 Exception has occurred PlatformExcept
  • jquery 移动列表视图样式

    我正在尝试设置列表视图控件的样式 但遇到问题 当我将图像宽度设置为 40px 如标记中所示 时 我似乎无法让内容正确地向左对齐 IE 我不想要图像和文本之间的间隙 这是我的标记 ul class ui listview li class u
  • 从 JAVA 8 连接到 SQL Server 2005

    正在准备一些代码用于从 VB SQL Server 迁移到基于 JAVA Oracle DB 的新解决方案 因此我尝试连接 SQL Server 来查询一些数据 然后将它们放在我们新的 Oracle 表中 但是当我尝试通过此连接时代码 Dr
  • 任何人都可以使用 GetIt!在 Delphi 10.4.1 中安装任何产品?

    自周五 10 月 16 日 以来 我一直在尝试使用 GetIt 安装任何内容 例如组件或其他任何与此相关的内容 当我按下 Icons8 1 0 的安装按钮时 我收到一条错误消息 Loading EULAS Cannot load data
  • NSURLSession 帖子:uploadTask 和 dataTask 之间的区别

    这是我的两个例子 let config NSURLSessionConfiguration defaultSessionConfiguration config HTTPAdditionalHeaders Accept applicatio
  • Android 上的 React 本机异步存储限制

    我正在开发一个 React Native 应用程序 它很容易超过 6mb 的限制 根据this https github com facebook react native blob master ReactAndroid src main
  • Spring Neo4j:通过不同控制台执行时相同的密码查询花费不同的时间

    通过不同控制台执行相同的密码查询会花费不同的时间 通过执行spring data neo4j 花了 8 秒 Query MATCH user User uid 0 FRIEND friend User RETURN friend publi
  • 无法使用 ShopifyAPI 更新变体价格

    我面临一个问题 无法使用 ShopifyAPI 更新变体的价格 更新变体的价格时 出现错误 remote errors validation context nil errors gt messages base gt 选项不唯一 根据另一
  • React Native SDK 与 expo SDK 不兼容

    当我使用 expo 运行 React Native 项目时 出现此错误 此项目使用 SDK 38 0 0 但此版本的 Expo Go 仅支持以下 SDK 43 00 42 0 0 41 0 0 40 0 0 加载项目 必须更新到受支持的 S
  • Vue 绑定到外部对象

    我正在尝试使用 Vue 作为一个非常薄的层来将现有模型对象绑定到视图 下面是一个玩具应用程序 说明了我的问题 我有一个GainNode https developer mozilla org en US docs Web API GainN
  • 如何在 Jenkins Build Execute Shell 中运行 docker 命令

    我是詹金斯的新手 我一直在四处寻找 但找不到我要找的东西 我想知道如何在 Jenkins 中运行 docker 命令 构建 执行 Shell 例子 docker run hello world 我在 Jenkins 配置系统中将 Docke
  • 设置纵横比时 Pyplot imshow 不显示方形像素

    我在使用 Pyplot 时遇到一些问题imshow从 numpy 中绘制图像ndarray called data保持其纵横比和方形像素 的形状ndarray is 112 2182 这是我正在使用的代码 import matplotlib
  • NDS 求解波动方程时的不稳定性

    我正在尝试使用NDSolve求解波动方程 以检查使用它是否比我的旧特征方程更容易和 或更快 方法实施 我得到了很多特征方法没有得到的不稳定性 并且由于这些是简单的方程 我想知道出了什么问题 希望不是问题的物理方面 ans Flatten N
  • 如何在 ZedGraph 中同步三个 GraphPane?

    使用时ZedGraph要在三个 GraphPane 上显示六个图表 如第一张图片所示 所有图表都是同步的 但是 当我尝试显示第一个窗格的日期时 图表不同步 如第二张图片所示 重要的是所有六个图表保持同步 以便用户理解整个图表 我已经按照建议
  • MaterialApp 构建器错误:找不到覆盖小部件

    我在构建 navigationDrawer 时遇到错误 其中 tootlip 小部件需要 MaterialApp 作为祖先 这是错误的内容 I flutter 5780 TooltipState bc79e ticker inactive
  • 是否有一种简洁的方法可以使用现有数据的副本生成新线程?

    我正在尝试生成几个新线程 其中每个线程都有自己的copy某个州的 我想要的是这样的 use std thread fn main let data vec 42 10 let more data Important data to stri
  • Python 从子进程调用 raw_input

    我正在使用 subprocess 从下面的脚本中调用 python 脚本 用户从命令行使用 raw input 选择要打开的文件 import optparse import subprocess import readline impor