练习题,使用多线程编写一个简单的文本处理工具

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()
简单的文本处理

以上是关于练习题,使用多线程编写一个简单的文本处理工具的主要内容,如果未能解决你的问题,请参考以下文章

6-4 线程练习题:多线程爬虫

C中的多线程与多处理

文本处理与脚本的简单编写练习

你好,博客园!!第一弹~局域网下的简易聊天室,socket与多线程简结

多线程学习总结

P364 实战练习(多线程)