在 Python 中进行多处理时无法使用输入

2023-11-29

我想同时运行2个进程。 1 将继续每秒打印“a”,另一个进程将要求输入,当输入为“Y”时,第一个进程将停止打印“a”。我对 Python 还很陌生,我不明白......

这是我到目前为止想到的:

from multiprocessing import Process
import time

go = True

def loop_a():
    global go

    while go == True:
        time.sleep(1)
        print("a")

def loop_b():
    global go
    text = input('Y/N?')

    if text == 'Y':
        go = False

if __name__ == '__main__':
    Process(target=loop_a).start()
    Process(target=loop_b).start()

这是我收到的错误消息:

Process Process-2:
Traceback (most recent call last):
  File "C:\Users\Tip\AppData\Local\Programs\Python\Python36\lib\multiprocessing\process.py", line 249, in _bootstrap
    self.run()
  File "C:\Users\Tip\AppData\Local\Programs\Python\Python36\lib\multiprocessing\process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "F:\ProgrammingTK\PROGproject\test.py", line 15, in loop_b
    text = input('Y/N?')
EOFError: EOF when reading a line

扩展于jasonharper的评论,因为他是正确的。

有几个问题

  1. The go变量是not进程之间共享。正如杰森建议的那样,你可以使用类似的东西Manager in multiprocessing为了在多个进程之间共享值。从技术上来说,go变量将被复制到每个进程中,但不会在它们之间共享,因此一个进程中的更改不会被另一个进程看到。
  2. 再次,正如他提到的,你需要拉input(..)进入程序的主线程。另外,如果您使用的是 2.7,则需要使用raw_input(..).
  3. 另外,如果您只检查一次标志然后退出,那么您可能会遇到BrokenPipeError.

考虑到这一点,你可以尝试这样的事情:

from multiprocessing import Process, Manager
import time


def loop_a(go):
    while True:
        # run forever and print out the msg if the flag is set
        time.sleep(1)
        if go.value:
            print("a")

if __name__ == '__main__':
    # shared value flag
    manager = Manager()
    go_flag = manager.Value('flag', True)

    # other process that is printing
    Process(target=loop_a, args=(go_flag,)).start()

    # normal main thread; toggle on and off the other process
    while True:
        text = input('Stop Y/N?')
        if text == 'Y':
            go_flag.value = False
            print("Changed the flag {}".format(go_flag.value))
        else:
            go_flag.value = True
            print("Changed the flag {}".format(go_flag.value))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 中进行多处理时无法使用输入 的相关文章

  • AttributeError:'function'对象在pandas中没有属性'bar'

    我有一个 pandas 数据框 它是 pandas 数据框类型 如下所示 type df Out 176 pandas core frame DataFrame 但是 当我尝试在此数据框上使用任何绘图函数 如条形图 时 会出现如下错误 df
  • Django 查询:“datetime + delta”作为表达式

    好吧 我的问题如下 假设我有下一个模型 这是一个简单的情况 class Period models Model name CharField field specs here start date DateTimeField field s
  • 在 PhotoImage 下调整图像大小

    我需要调整图像大小 但我想避免使用 PIL 因为我无法使其在 OS X 下工作 不要问我为什么 无论如何 因为我对 gif pgm ppm 感到满意 所以 PhotoImage 类对我来说没问题 photoImg PhotoImage fi
  • 如何将 numpy rearray 的子集转换为连续数组?

    我有一个recarray来自读取 csv 文件 我有兴趣将列的子集转换为连续浮点数组 我想避免将它们转换为列表或将它们一一堆叠 我尝试了中的建议https stackoverflow com a 11792956 https stackov
  • 如何调试 numpy 掩码

    这个问题与this one https stackoverflow com q 73672739 11004423 我有一个正在尝试矢量化的函数 这是原来的函数 def aspect good angle float planet1 goo
  • 将多索引转换为行式多维 NumPy 数组。

    假设我有一个类似于以下示例的 MultiIndex DataFrame多索引文档 http pandas pydata org pandas docs stable advanced html gt gt gt df 0 1 2 3 fir
  • 烧瓶 - 404 未找到

    我是烧瓶开发的新手 这是我在烧瓶中的第一个程序 但它向我显示了这个错误 在服务器上找不到请求的 URL 如果您输入了网址 请手动检查拼写并重试 这是我的代码 from flask import Flask app Flask name ap
  • 如果另一列中的值为空,则删除重复项 - Pandas

    我拥有的 df Name Vehicle Dave Car Mark Bike Steve Car Dave Steve 我想从 名称 列中删除重复项 但前提是 车辆 列中的相应值为空 我知道我可以使用 df dropduplicates
  • 从字典中绘制直方图

    我创建了一个dictionary计算 a 中出现的次数list每个键的内容 我现在想绘制其内容的直方图 这是我想要绘制的字典的内容 1 27 34 1 3 72 4 62 5 33 6 36 7 20 8 12 9 9 10 6 11 5
  • Python sys.modules 包含尚未导入的模块

    我试图了解加载的模块与导入的模块之间的区别 如果有的话 我正在使用 Python 2 7 3 并且只是从命令行运行 Python 如果我执行 import sys sys modules 我得到一个列表 其中包括os 例如 文档说sys m
  • 获取 int() 参数必须是字符串或数字,而不是“Column”- Apache Spark

    如果我使用以下代码 我会收到此异常 int argument must be a string or a number not Column df df withColumn FY F when df ID substr 5 2 isin
  • Karasuba算法递归过多

    我正在尝试用 c 实现 Karasuba 乘法算法 但现在我只是想让它在 python 中工作 这是我的代码 def mult x y b m if max x y lt b return x y bm pow b m x0 x bm x1
  • 如何仅注释堆积条形图的一个类别

    我有一个数据框示例 如下所示 data Date 2021 07 18 2021 07 19 2021 07 20 2021 07 21 2021 07 22 2021 07 23 Invalid NaN 1 1 NaN NaN NaN N
  • django 中的身份验证方法返回 None

    你好 我在 django 中做了一个简单的注册和登录页面 当想要登录时 登录视图中的身份验证方法不返回任何内容 我的身份验证应用程序 模型 py from django db import models from django contri
  • 操作错误:尝试在 ubuntu 服务器中写入只读数据库

    我正在使用 FlaskApp 运行mod wsgi and apache2在 Ubuntu 服务器上 我尝试运行烧瓶应用程序localhost成功 然后部署到ubuntu服务器上 但是当我尝试更新数据库时 出现错误 Failed to up
  • 更改用作函数全局作用域的字典

    我想做一个 purePython 的装饰器 其中一部分是能够有选择地禁止访问函数的全局范围 有没有一种方法可以以编程方式更改哪个字典事物充当函数的全局 外部作用域 因此 例如在下面我希望能够拦截对f in h并抛出错误 但我想允许访问g因为
  • 如何使用logging.conf文件使用RotatingFileHandler将所有内容记录到文件中?

    我正在尝试使用RotatingHandler用于 Python 中的日志记录目的 我将备份文件保留为 500 个 这意味着我猜它将创建最多 500 个文件 并且我设置的大小是 2000 字节 不确定建议的大小限制是多少 如果我运行下面的代码
  • 避免“散点/点/蜂群”图中的数据点重叠

    使用绘制点图时matplotlib 我想偏移重叠的数据点以使它们全部可见 例如 如果我有 CategoryA 0 0 3 0 5 CategoryB 5 10 5 5 10 我想要每一个CategoryA 0 数据点并排设置 而不是彼此重叠
  • 正则表达式 - 匹配不包含字符串的模式

    我对正则表达式很陌生 并且一直在寻找方法来做到这一点 但没有成功 给定一个字符串 我想删除以 abc 开头 以 abc 结尾且中间不包含 abc 的任何模式 如果我做 abc abc abc 它将匹配以 b 开头 以 abc 结尾并且中间包
  • 用 Beautiful Soup 进行抓取:为什么 get_text 方法不返回该元素的文本?

    最近我一直在用 python 开发一个项目 其中涉及抓取一些网站的一些代理 我遇到的问题是 当我尝试抓取某个知名代理站点时 当我要求 Beautiful Soup 查找 IP 在代理表中的位置时 它并没有按照我的预期执行操作 我将尝试查找每

随机推荐

  • nested_form, has_many :through, 更新连接模型上的属性

    我正在使用 ryan bates 的插件nested form 并且我一直在尝试为 has many through 关系编写表单 我有3个型号 Profile has many memberships has many organizat
  • 元素树对xpath的限制

    我使用 Element Tree 一段时间了 我喜欢它 因为它很简单 但我怀疑它的 x 路径的实现 这是 XML 文件 a b b b b a
  • c、结构体后面的函数定义

    675 Check the validity of an ACL for a file 676 677 int 678 ufs aclcheck ap 679 struct vop aclcheck args 680 struct vnod
  • 实现双工时 WCF 中出现超时异常

    我的服务合同和回调合同如下所示 ServiceContract CallbackContract typeof IWebshopCallback interface IWebshop OperationContract string Get
  • 如何向`@Html.EditorFor`添加自定义数据属性和类?

    我想添加一些自定义属性input产生于 Html EditorFor 我尝试了以下方法 Html EditorFor model gt model Percent new class percent 但它只是忽略了我的类 从我周围的搜索中可
  • 向 JSF 2.0 UIInput 组件添加自定义属性 (HTML5) 支持

    我正在尝试编写一个渲染器来处理placeholder上的属性
  • 捕获相机拍摄的照片并将其存储到本地数据库/PhoneGap/Cordova/iOS中

    我目前正在使用 Phonegap Cordova 和 jQuerymobile 构建 iOS 应用程序 这个想法是用相机拍照并存储捕获的图像以供将来使用 我想将路径 文件名存储到本地数据库中 并将图片文件移动到 iPhone 中的持久位置
  • 优化 iPad 上多张图片的加载

    我正在开发一个 iPad 项目 尝试通过切换预渲染图像来模拟 3D 物体的旋转 在内存管理方面 我不是最敏锐的人 所以我想知道是否有人对如何优化它有任何建议 我的解决方案现在看起来像这样 void touchesMoved NSSet to
  • 学习Python:If条件一直执行

    我正在学习 python 我不明白为什么下面的程序会打印你的数字比我想象的要多即使猜测的数字较小 就像在 python 中一样 它是比较字符串而不是数字 number 32 tries 1 print I have chosen a num
  • 未捕获的 ReflectionException:类日志不存在 Laravel 5.2

    我目前正在尝试从 github 克隆我的现有项目 克隆后我运行composer install在此过程中我收到以下错误 Uncaught ReflectionException Class log does not exist 我在 Cen
  • 在Ui线程上执行同步操作

    我正在尝试开发 Windows 应用程序并遇到问题 我有一个 MainPage xaml 和另外 2 个 StartScreen xaml 和 Player xaml 如果某些条件成立 我将切换主页的内容 因此 我在 StartScreen
  • PHP从页面中提取文章摘录

    任何人都知道如何从任何给定的文章页面生成摘录 因此可以从许多类型的网站获取资源 就像当你将网址粘贴到帖子中时 Facebook 所做的那样 谢谢 你想做的事情叫做网页抓取 这样做的基本方法是捕获页面 您可以使用以下命令抓取 URLfile
  • 使用 URL.createObjectURL 重建 PDF 后损坏

    我试图从服务器传递 PDF 文件并将其显示在浏览器中 但输出已损坏 var blob atob data Package console log blob var file new Blob blob type application pd
  • 如何在 Android 中显示来自 google 驱动器 url 的视频

    我想在 Android 应用程序中显示视频 我在谷歌上搜索并找到了下面的代码 VideoView videoView VideoView findViewById R id videoView 字符串 vid 地址 https docs g
  • bash 脚本中的“exec”之后不会运行任何代码[重复]

    这个问题在这里已经有答案了 我在命令名称中使用变量扩展进行测试的示例 bash 脚本 test command w variable expansion in name sh bin bash Gabriel Staples 21 Mar
  • 必须声明标量变量错误

    这与我最后一个问题有关 我有这个代码 DECLARE PatientId UNIQUEIDENTIFIER DECLARE FormId NCHAR 16 DECLARE columns VARCHAR 8000 DECLARE query
  • 将 JFileChooser 置于所有窗口之上

    我似乎对文件选择器对话框的非常简单的实现有一个问题 它要求我每次都最小化 Netbeans 才能实现它 而且现在特别是在测试时变得非常令人沮丧 我在网上看到了一些解决方案 包括SO但似乎没有一个能做到这一点 而其他一些对于我目前的水平来说似
  • 在 swing 中调整图像大小

    我有一段代码 用于将图像大小调整为窗帘大小 我想将分辨率更改为 200 dpi 之类的值 基本上我需要它的原因是因为我想显示用户选择的图像 有点大 然后如果用户批准我想在不同的地方显示相同的图像但使用较小的分辨率 不幸的是 如果我给它一个大
  • 如何在 html 中嵌入 .AVI?

    我在网上找到了一些 html 中的 AVI 示例 但我的页面http pianocheater com VIDEO html是有问题的 我的电脑上的 chrome 没问题 在 IE 中 您会在顶部看到那个该死的栏 然后视频就变成空白了 它可
  • 在 Python 中进行多处理时无法使用输入

    我想同时运行2个进程 1 将继续每秒打印 a 另一个进程将要求输入 当输入为 Y 时 第一个进程将停止打印 a 我对 Python 还很陌生 我不明白 这是我到目前为止想到的 from multiprocessing import Proc