欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

分享两个小程序

程序员文章站 2023-10-15 14:11:53
小编也不知道大家能不能用的到,我只是把我学到的知识分享出来,有需要的可以看一下。python本身就是一个不断更新改进的语言,不存在抄袭,有需要就可以拿过来用,在用的过程中,你发现可以用另外一种方法把它实现,就可以把代码做进一步的优化,然后分享出来,这样python会变的越来越实用。今天心情不好,分享 ......

  小编也不知道大家能不能用的到,我只是把我学到的知识分享出来,有需要的可以看一下。python本身就是一个不断更新改进的语言,不存在抄袭,有需要就可以拿过来用,在用的过程中,你发现可以用另外一种方法把它实现,就可以把代码做进一步的优化,然后分享出来,这样python会变的越来越实用。今天心情不好,分享两个小程序就结束!

邮箱分类存储

 1 #! /usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # __author__ = "dylan"
 4 
 5 
 6 ''' 新建一个txt文件存储网络爬取的邮箱账号和密码,存储方式如下(具体问题具体分析,这里只是举个例子):
 7 data:
 8       账号                   密码
 9     laphae757878@163.com----198587
10     sgdjhgawue@126.com----198587
11     eiuuweyi34@qq.com----198587
12 res:
13     126.txt:
14         sgdjhgawue
15     163.txt:
16         laphae757878
17     qq.txt:
18         eiuuweyi34
19 '''
20 
21 
22 import os
23 import collections
24 
25 def work(path):
26     respath = r"存放取出数据的路径"  # 如c:\python\res
27     with open(path, "r") as f:
28         while true:
29             lineinfo = f.readline()
30             if len(lineinfo) < 5:
31                 break
32             emailstr = lineinfo.split("----")[0]   # 邮箱@前的字段
33             filetype = emailstr.split("@")[1].split(".")[0]  # 邮箱类型的目录 如c:\python\res\163
34             dirstr = os.path.join(respath, filetype)
35             if not os.path.exists(dirstr):
36                 os.mkdir(dirstr)  # 不存在,就创建这个目录
37             filepath = os.path.join(dirstr, filetype + ".txt") # 为每一个邮箱类型创建一个txt文件,然后把对应的邮箱写进去
38             with open(filepath, "w") as fw:
39                 fw.write(emailstr + "\n")
40 
41 def getalldirqueue(path):
42     queue = collections.deque()
43     queue.append(path)
44     while len(queue) != 0:
45         dirpath = queue.popleft()
46         filelist = os.listdir(dirpath)
47         for filename in filelist:
48             fileabspath = os.path.join(dirpath, filename)
49             if os.path.isdir(fileabspath):
50                 queue.append(fileabspath)
51             else:
52                 work(fileabspath)  # 处理普通文件
53 
54 getalldirqueue(r"数据路径")  # 如c:\python\data

 语音控制系统打开或关闭系统应用程序

 1 from win32com.client import constants
 2 import win32com.client
 3 import pythoncom
 4 import os
 5 
 6 speaker = win32com.client.dispatch("sapi.spvoice")
 7 
 8 
 9 class speechrecognition:
10     def __init__(self,wordstoadd):
11         self.speaker=win32com.client.dispatch("sapi.spvoice")
12         self.listener=win32com.client.dispatch("sapi.spsharedrecognizer")
13         self.context=self.listener.createrecocontext()
14         self.grammar=self.context.creategrammar()
15         self.grammar.dictationsetstate(0)
16         self.wordsrule=self.grammar.rules.add("wordsrule",constants.sratoplevel+constants.sradynamic,0)
17         self.wordsrule.clear()
18         [self.wordsrule.initialstate.addwordtransition(none,word)for word in wordstoadd]
19         self.grammar.rules.commit()
20         self.grammar.cmdsetrulestate("wordsrule",1)
21         self.grammar.rules.commit()
22         self.eventhandler=contextevents(self.context)
23         self.say("startedsuccessfully")
24 
25     def say(self,phrase):
26         self.speaker.speak(phrase)
27         
28 
29 class contextevents(win32com.client.getevents("sapi.spsharedrecocontext")):
30     def onrecognition(self,streamnumber,streamposition,recognitiontype,result):
31         newresult=win32com.client.dispatch(result)
32         print("说:",newresult.phraseinfo.gettext())
33         s = newresult.phraseinfo.gettext()
34         if s == "记事本":
35             os.system("start notepad")
36         elif s == "画图板":
37             os.system("start mspaint")
38 
39 if __name__ == "__main__":
40     speaker.speak("语音识别开启")
41     wordstoadd = ["关机", "取消关机", "记事本", "画图板", "写字板", "设置", "关闭记事本"]
42     speechreco = speechrecognition(wordstoadd)
43     while true:
44         pythoncom.pumpwaitingmessages()