练习题,使用多线程编写一个简单的文本处理工具
Posted lovepy3
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了练习题,使用多线程编写一个简单的文本处理工具相关的知识,希望对你有一定的参考价值。
一. 练习题要求:
编写一个简单的文本处理工具,具备三个任务,一个接收用户输入,一个将用户输入的内容格式化成大写,一个将格式化后的结果存入文件
二. 分析:
三个任务,那就是三个线程.分别的输入,转换,写入,这3个线程.那么写入的输入,其他线程怎么取出?我们可以使用Queue队列,把用户输入的字符写入到队列中,然后再进行转换.转换完成后,再写入到另外一个队列中.等待最后写入文件
三.实现
1 from threading import Thread 2 from multiprocessing import Queue 3 4 5 def inp(q): 6 while True: 7 inp_str = input(">>>>").strip() 8 q.put(inp_str) 9 if inp_str == "exit": 10 break 11 12 13 def str_up(q, q1): 14 while True: 15 msg = q.get().upper() 16 q1.put(msg) 17 if msg == "EXIT": 18 break 19 20 21 def dump_f(q1): 22 while True: 23 if q1.get() != "EXIT": 24 with open("test.txt", "a+", encoding="utf-8") as f: 25 f.write(q1.get() + " ") 26 else: 27 break 28 29 30 if __name__ == ‘__main__‘: 31 q = Queue() 32 q1 = Queue() 33 t1 = Thread(target=inp, args=(q,)) 34 t2 = Thread(target=str_up, args=(q, q1)) 35 t3 = Thread(target=dump_f, args=(q1,)) 36 t1.start() 37 t2.start() 38 t3.start()
以上是关于练习题,使用多线程编写一个简单的文本处理工具的主要内容,如果未能解决你的问题,请参考以下文章