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

一. 练习题要求:
  编写一个简单的文本处理工具,具备三个任务,一个接收用户输入,一个将用户输入的内容格式化成大写,一个将格式化后的结果存入文件

二. 分析:
  三个任务,那就是三个线程.分别的输入,转换,写入,这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() + "\n")
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()
简单的文本处理

猜你喜欢

转载自www.cnblogs.com/lovepy3/p/9278702.html