La pesca también es eficiente: 8 scripts de automatización de Python para mejorar la felicidad de los trabajadores ~

¡Hola a todos! Soy un panda rojo ❤

Recientemente, muchos trabajadores migrantes han venido a mí y me han dichoes dificil trabajar

Por favor agregue la descripción de la imagen

realizar muchas tareas repetitivas todos los días ,

P.ejLea noticias, envíe correos electrónicos, consulte el clima, abra marcadores, limpie carpetasy muchos más,

Con scripts automatizados, no hay necesidad de completar manualmente estas tareas una y otra vez,

Es muy conveniente ¿Hay algo de madera? !

Y en cierto modo, Python es sinónimo de automatización.

Ven y aprende contigo hoy,

Mejore la eficiencia del trabajo con 8 scripts de automatización de python~ Happy Fishing~


inserte la descripción de la imagen aquí


1. Leer automáticamente noticias web

Este script puede extraer texto de páginas web y luego leerlo automáticamente en voz alta, lo cual es una buena opción cuando desea escuchar las noticias.

El código se divide en dos partes, la primera es rastrear el texto de la página web a través del rastreador y la segunda es leer el texto en voz alta a través de la herramienta de lectura.

Bibliotecas de terceros requeridas:

  • Beautiful Soup: analizador de texto HTML/XML clásico para extraer información de páginas web rastreadas
  • solicitudes: una herramienta HTTP fácil de usar para enviar solicitudes a páginas web para obtener datos
  • Pyttsx3: convierte texto en voz y controla la velocidad, la frecuencia y el habla
import pyttsx3
import requests
from bs4 import BeautifulSoup
voices = engine.getProperty('voices')
newVoiceRate = 130                       ## Reduce The Speech Rate
engine.setProperty('rate',newVoiceRate)
engine.setProperty('voice', voices[1].id)
def speak(audio):
  engine.say(audio)
  engine.runAndWait()
text = str(input("Paste article\n"))
res = requests.get(text)

articles = []
for i in range(len(soup.select('.p'))):
    article = soup.select('.p')[i].getText().strip()
    articles.append(article)
text = " ".join(articles)
speak(text)
# engine.save_to_file(text, 'test.mp3') ## If you want to save the speech as a audio file
engine.runAndWait()

Por favor agregue la descripción de la imagen


2. Exploración de datos automatizada

La exploración de datos es el primer paso en un proyecto de ciencia de datos, necesita comprender la información básica de los datos para analizar más a fondo el valor.

Generalmente, usamos pandas, matplotlib y otras herramientas para explorar datos, pero necesitamos escribir mucho código nosotros mismos. Si desea mejorar la eficiencia, Dtale es una buena opción.

Dtale presenta un informe de análisis automatizado con una sola línea de código, que combina el backend de Flask con el frontend de React, lo que nos brinda una manera fácil de ver y analizar las estructuras de datos de Pandas.

Podemos usar Dtale en Jupyter.

Bibliotecas de terceros requeridas:

  • Dtale - Genera automáticamente informes de análisis
### Importing Seaborn Library For Some Datasets
import seaborn as sns

### Printing Inbuilt Datasets of Seaborn Library
print(sns.get_dataset_names())


### Loading Titanic Dataset
df=sns.load_dataset('titanic')

### Importing The Library
import dtale

Por favor agregue la descripción de la imagen


3. Envía automáticamente varios correos electrónicos

Este script puede ayudarnos a enviar correos electrónicos en lotes a intervalos regulares, y el contenido y los archivos adjuntos de los correos electrónicos también se pueden personalizar y ajustar, lo cual es muy práctico.

En comparación con los clientes de correo, la ventaja de los scripts de Python es que pueden implementar servicios de correo de forma inteligente, en lotes y con un alto grado de personalización.

Bibliotecas de terceros requeridas:

  • Correo electrónico: para administrar mensajes de correo electrónico;
  • Smtlib: envía correo electrónico a un servidor SMTP, define un objeto de sesión de cliente SMTP que puede enviar correo a cualquier
    computadora en Internet con un escucha SMTP o ESMTP;
  • Pandas: herramienta de limpieza para el análisis de datos;
import smtplib 
from email.message import EmailMessage

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("[email protected]","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]

Por favor agregue la descripción de la imagen


4. Convertir PDF a archivo de audio

El script puede convertir pdf a archivo de audio,

El principio también es muy simple,

Primero extraiga el texto en el pdf con PyPDF,

Luego use Pyttsx3 para convertir el texto a voz.

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() 

Por favor agregue la descripción de la imagen


5. Reproduce música aleatoria de la lista.

Este script seleccionará aleatoriamente una canción de la carpeta de canciones para reproducir,

Tenga en cuenta que os.startfile solo admite sistemas 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]))  

Por favor agregue la descripción de la imagen


6. Información meteorológica inteligente

El sitio web del Servicio Meteorológico Nacional proporciona una API para obtener pronósticos meteorológicos, que devuelve directamente los datos meteorológicos en formato json. Así que simplemente elimine los campos correspondientes de json.

La siguiente es la URL del clima de la ciudad designada (condado, distrito), abra la URL directamente y se devolverán los datos meteorológicos de la ciudad correspondiente. por ejemplo:

http://www.weather.com.cn/data/cityinfo/101021200.html El sitio web meteorológico correspondiente al distrito de Xuhui, Shanghái.

El código específico es el siguiente:

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) 

El resultado de la ejecución es el siguiente:
Por favor agregue la descripción de la imagen


7. Cambia las URL largas por URL cortas

A veces, esas URL grandes se vuelven realmente molestas,

Difícil de leer y compartir, este script puede convertir URL largas en URL cortas.

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() 

Este script es muy útil,

Por ejemplo, hay plataformas de contenido que bloquean artículos de cuentas oficiales.

Luego puede convertir el enlace del artículo de la cuenta oficial en un enlace corto,

Luego conéctelo y podrá omitirlo.

Por favor agregue la descripción de la imagen


8. Limpia la carpeta de descarga

Una de las cosas más confusas del mundo es la carpeta de descarga del desarrollador,

Hay muchos archivos desordenados dentro.

Este script limpiará su carpeta de descargas de acuerdo con el límite de tamaño,

Limpieza limitada de archivos más antiguos.

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]) 

El artículo de hoy está aquí~

Soy Red Panda, nos vemos en el próximo artículo (✿◡‿◡)

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/m0_67575344/article/details/126483788
Recomendado
Clasificación