分享两个小程序

发布时间:2019-03-04 15:58:43编辑:auto阅读(2062)

      小编也不知道大家能不能用的到,我只是把我学到的知识分享出来,有需要的可以看一下。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()

     

关键字