自动化脚本编写实例-python,简单的python脚本实例

  自动化脚本编写实例-python,简单的python脚本实例

  本文已经为大家带来了一些关于Python的知识,主要梳理了自动化脚本的相关问题,包括web新闻的自动阅读、数据的自动探索、多封邮件的自动发送等等。下面就一起来看看吧,希望对你有帮助。

  【相关推荐:Python3视频教程】

  你可能每天都要执行很多重复的任务,比如看新闻、发邮件、查天气、打开书签、清理文件夹等。使用自动化脚本,就不需要一次次手动完成这些任务,非常方便。在某种程度上,Python是自动化的代名词。

  今天分享几个非常有用的Python自动化脚本。

  00-1010这个脚本可以从网页上抓取文本,然后自动阅读。想听新闻的时候是个不错的选择。

  代码分为两部分,第一部分是通过爬虫抓取网页文本,第二部分是通过阅读工具朗读文本。

  必需的第三方库:

  一个经典的HTML/XML文本解析器,用来提取被抓取的网页的信息。

  requests——一个易于使用的HTTP工具,用于向网页发送请求以获取数据。

  pyttsx 3-转换文本为语音,并控制速度,频率和语音。

  导入pyttsx3

  导入请求

  从bs4导入BeautifulSoup

  engine=pyttsx3.init(sapi5 )

  voices=engine . getproperty( voices )

  newVoiceRate=130 ##降低语音速率

  engine.setProperty(rate ,newVoiceRate)

  engine.setProperty(voice ,voices[1])。id)

  def扬声器(音频):

  engine.say(音频)

  engine.runAndWait()

  text=str(input(粘贴文章\n ))

  res=requests.get(文本)

  soup=BeautifulSoup(res.text, html.parser )

  文章=[]

  对于范围内的I(len(soup . select(。p))):

  article=soup.select(。p )[我]。getText()。条状()

  articles.append(文章)

  文本=“”。加入(文章)

  朗读(文本)

  # engine.save_to_file(text, test.mp3) ##如果您想将语音保存为音频文件

  Engine.runAndWait()

1、自动化阅读网页新闻

数据探索是数据科学项目的第一步。你需要了解数据的基本信息,才能进一步分析其更深层次的价值。

  一般我们用pandas,matplotlib等工具来探索数据,但是需要自己写很多代码。如果想提高效率,Dtale是个不错的选择。

  Dtale的特点是用一行代码生成自动分析报告,结合了Flask后端和React前端,为我们提供了一种简单的查看和分析Pandas数据结构的方法。

  我们可以在Jupyter上使用Dtale。

  必需的第三方库:

  dtale-自动生成分析报告

  ###为某些数据集导入Seaborn库

  将seaborn作为sns导入

  ###打印Seaborn库的内置数据集

  print(sns.get_dataset_names())

  ###正在加载泰坦尼克号数据集

  df=sns.load_dataset(泰坦尼克)

  ###导入库

  导入数据标签

  ####生成快速摘要

  显示(df)

  00-1010这个脚本可以帮助我们定时批量发送邮件,邮件内容和附件也可以自定义调整,非常实用。

  与邮件客户端相比,Python脚本的优势在于可以智能、批量、高度定制地部署邮件服务。

  必需的第三方库:

  电子邮件-用于管理电子邮件消息。

  smtlib——向SMTP服务器发送电子邮件,SMTP服务器定义了一个SMTP客户端会话对象,它可以通过SMTP或ESMTP侦听器向Internet上的任何计算机发送电子邮件。

  熊猫-用于数据分析和清理

  地工具

  

import smtplib 

  from email.message import EmailMessage

  import pandas as pd

  def send_email(remail, rsubject, rcontent):

   email = EmailMessage() ## Creating a object for EmailMessage

   email['from'] = 'The Pythoneer Here' ## Person who is sending

   email['to'] = remail ## Whom we are sending

   email['subject'] = rsubject ## Subject of email

   email.set_content(rcontent) ## content of email

   with smtplib.SMTP(host='smtp.gmail.com',port=587)as smtp:

   smtp.ehlo() ## server object

   smtp.starttls() ## used to send data between server and client

   smtp.login("deltadelta371@gmail.com","delta@371") ## login id and password of gmail

   smtp.send_message(email) ## Sending email

   print("email send to ",remail) ## Printing success message

  if __name__ == '__main__':

   df = pd.read_excel('list.xlsx')

   length = len(df)+1

   for index, item in df.iterrows():

   email = item[0]

   subject = item[1]

   content = item[2]

   send_email(email,subject,content)

4、将 PDF 转换为音频文件

脚本可以将 pdf 转换为音频文件,原理也很简单,首先用 PyPDF 提取 pdf 中的文本,然后用 Pyttsx3 将文本转语音。

  

import pyttsx3,PyPDF2 

  pdfreader = PyPDF2.PdfFileReader(open('story.pdf','rb'))

  speaker = pyttsx3.init()

  for page_num in range(pdfreader.numPages):

   text = pdfreader.getPage(page_num).extractText() ## extracting text from the PDF

   cleaned_text = text.strip().replace('\n',' ') ## Removes unnecessary spaces and break lines

   print(cleaned_text) ## Print the text from PDF

   #speaker.say(cleaned_text) ## Let The Speaker Speak The Text

   speaker.save_to_file(cleaned_text,'story.mp3') ## Saving Text In a audio file 'story.mp3'

   speaker.runAndWait()

  speaker.stop()

5、从列表中播放随机音乐

这个脚本会从歌曲文件夹中随机选择一首歌进行播放,需要注意的是 os.startfile 仅支持 Windows 系统。

  

import random, os 

  music_dir = 'G:\\new english songs'

  songs = os.listdir(music_dir)

  song = random.randint(0,len(songs))

  print(songs[song]) ## Prints The Song Name

  os.startfile(os.path.join(music_dir, songs[0]))

6、智能天气信息

国家气象局网站提供获取天气预报的 API,直接返回 json 格式的天气数据。所以只需要从 json 里取出对应的字段就可以了。

  下面是指定城市(县、区)天气的网址,直接打开网址,就会返回对应城市的天气数据。比如:

  http://www.weather.com.cn/data/cityinfo/101021200.html 上海徐汇区对应的天气网址。

  具体代码如下:

  

mport requests 

  import json

  import logging as log

  def get_weather_wind(url):

   r = requests.get(url)

   if r.status_code != 200:

   log.error("Can't get weather data!")

   info = json.loads(r.content.decode())

   # get wind data

   data = info['weatherinfo']

   WD = data['WD']

   WS = data['WS']

   return "{}({})".format(WD, WS)

   def get_weather_city(url):

   # open url and get return data

   r = requests.get(url)

   if r.status_code != 200:

   log.error("Can't get weather data!")

   # convert string to json

   info = json.loads(r.content.decode())

   # get useful data

   data = info['weatherinfo']

   city = data['city']

   temp1 = data['temp1']

   temp2 = data['temp2']

   weather = data['weather']

   return "{} {} {}~{}".format(city, weather, temp1, temp2)

   if __name__ == '__main__':

   msg = """**天气提醒**:

  {} {}

  {} {}

  来源: 国家气象局

  """.format(

   get_weather_city('http://www.weather.com.cn/data/cityinfo/101021200.html'),

   get_weather_wind('http://www.weather.com.cn/data/sk/101021200.html'),

   get_weather_city('http://www.weather.com.cn/data/cityinfo/101020900.html'),

   get_weather_wind('http://www.weather.com.cn/data/sk/101020900.html') )

   print(msg)

运行结果如下所示:

  

7、长网址变短网址

有时,那些大URL变得非常恼火,很难阅读和共享,此脚可以将长网址变为短网址。

  

import contextlib 

  from urllib.parse import urlencode

  from urllib.request import urlopen

  import sys

  def make_tiny(url):

   request_url = ('http://tinyurl.com/api-create.php?' +

   urlencode({'url':url}))

   with contextlib.closing(urlopen(request_url)) as response:

   return response.read().decode('utf-8')

   def main():

   for tinyurl in map(make_tiny, sys.argv[1:]):

   print(tinyurl)

   if __name__ == '__main__':

   main()

这个脚本非常实用,比如说有内容平台是屏蔽公众号文章的,那么就可以把公众号文章的链接变为短链接,然后插入其中,就可以实现绕过

  

8、清理下载文件夹

世界上最混乱的事情之一是开发人员的下载文件夹,里面存放了很多杂乱无章的文件,此脚本将根据大小限制来清理您的下载文件夹,有限清理比较旧的文件:

  

import os 

  import threading

  import time

  def get_file_list(file_path): #文件按最后修改时间排序

   dir_list = os.listdir(file_path)

   if not dir_list:

   return

   else:

   dir_list = sorted(dir_list, key=lambda x: os.path.getmtime(os.path.join(file_path, x)))

   return dir_list

  def get_size(file_path):

   """[summary]

   Args:

   file_path ([type]): [目录]

   Returns:

   [type]: 返回目录大小,MB

   """

   totalsize=0

   for filename in os.listdir(file_path):

   totalsize=totalsize+os.path.getsize(os.path.join(file_path, filename))

   #print(totalsize / 1024 / 1024)

   return totalsize / 1024 / 1024

   def detect_file_size(file_path, size_Max, size_Del):

   """[summary]

   Args:

   file_path ([type]): [文件目录]

   size_Max ([type]): [文件夹最大大小]

   size_Del ([type]): [超过size_Max时要删除的大小]

   """

   print(get_size(file_path))

   if get_size(file_path) > size_Max:

   fileList = get_file_list(file_path)

   for i in range(len(fileList)):

   if get_size(file_path) > (size_Max - size_Del):

   print ("del :%d %s" % (i + 1, fileList[i]))

   #os.remove(file_path + fileList[i])

【相关推荐:Python3视频教程 】以上就是实例分享8个Python自动化脚本的详细内容,更多请关注盛行IT软件开发工作室其它相关文章!

  

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: