![](/img/trans.png)
[英]how to take input from dictionaries ? and print that desired value ..i want to use input function and print “zinger burer”
[英]How can I make the print() function not take the text in the input field with it
我试图为我的python应用程序创建一个控制台,但遇到一个问题:使用print()函数打印某些内容时,输入字段中的文本也包括在内。 这纯粹是可视的,因为该程序仍然可以运行。
我尝试过在线搜索,但是现在我什至没有搜索什么,也没有运气。
这是我的代码。 在用户键入“ exit”之前,它将打印“ foo”:
import multiprocessing as mp
import os
import time
def f(q):
while True:
print(q)
time.sleep(1)
if __name__=="__main__":
p=mp.Process(target=f, args=("foo",))
p.start()
while True:
comm=str(input())
if comm=="exit":
p.terminate()
break
程序运行时,用户仍然可以键入,但是当程序打印某些内容时,它也将占用输入字段中的所有内容:
foo
foo
foo
foo
efoo
xfoo
itfoo
当按下“ enter”时,程序仍然正确注册输入并退出程序。
这是对代码的修改,仅在完成输入键入后(即直到您Enter
)才输出foo
:
import multiprocessing as mp
from multiprocessing import Queue
def f(q, queue):
while True:
queue.get()
print(q)
if __name__=="__main__":
queue = Queue()
p=mp.Process(target=f, args=("foo", queue))
p.start()
while True:
comm=str(input())
queue.put(None)
if comm=="exit":
p.terminate()
break
如果终止该进程只是您希望用户能够执行的全部操作,则可以指示他们如果希望停止该操作,然后输入Ctrl + C,然后捕获随之而来的KeyboardInterrupt异常。
import multiprocessing as mp
import os
import time
def f(q):
while True:
print(q)
time.sleep(1)
if __name__=="__main__":
p=mp.Process(target=f, args=("foo",))
print("Process starting. Use Ctrl+c anytime to stop it!")
p.start()
try:
while True:
input() # Trash command
except KeyboardInterrupt:
print("Terminating process...")
p.terminate()
print("Process terminated...")
如果您想执行更复杂的命令,那么GUI将是您最好的方法(如John所提到的)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.