Tarefas de agendamento usando Python

Tarefas de agendamento usando Python
Algumas tarefas em nossa vida estão realmente levando tempo e ficamos entediados fazendo essas tarefas repetidamente. Para evitar as tarefas chatas, automatizamos essas tarefas em nosso sistema. O Python tem muitos módulos de automação que podem ser usados ​​para automatizar nossas coisas. Abaixo, discutiremos a importância da automação e como automatizar nossas coisas usando Python. Também discutiremos alguns módulos de automação em Python que ajudam a automatizar nossas coisas. Então veremos alguns casos de uso de automação usando Python. No final, veremos como podemos agendar nosso script python para ser executado automaticamente na inicialização.

Por que automatizamos nossas coisas

Automação de nossas coisas pode facilitar nossa vida. Tem muitas vantagens, mas algumas vantagens importantes da automação são fornecidas abaixo

  • Primeiro e a vantagem mais importante da automação é economizar tempo.
  • Podemos aumentar a eficiência do nosso trabalho (eu.e. mais trabalho em menos tempo)
  • A precisão das tarefas agendadas pode ser melhorada.
  • Ao automatizar coisas, a interação humana com o sistema é reduzida para que coisas chatas sejam automatizadas.

Automação com Python

Existem muitos idiomas de script como Bash, Perl etc. para automatizar processos manuais, mas o Python fornece um ambiente viável para lidar com nossas necessidades. É mais fácil automatizar coisas usando a linguagem de programação Python do que em qualquer outro idioma. Python tem muitos módulos de automação (i.e. Subprocesso, Shutil, OS, Pyautogui, Selenium etc.) que pode ser usado na automação. Veremos alguns casos de uso de como automatizamos nossas coisas.

Módulos de automação em Python

Aqui discutiremos alguns módulos de automação em python como OS, subprocesso, fechado, DateTime, Selenium etc. Esses módulos são usados ​​para executar comandos do sistema e também podem ser usados ​​para manipular os diretórios do sistema. Esses módulos construíram funções que facilitam a execução de tarefas no sistema.

OS e Subprocesso Os módulos são usados ​​para quase o mesmo propósito. Algumas das funções construídas desses módulos são dadas abaixo

  • chdir () \\ para alterar o diretório
  • mkdir () \\ para criar um novo diretório
  • renomear () \\ para renomear um arquivo
  • listdir () \\ para listar todos os arquivos e diretórios
  • getcwd () \\ para conhecer nosso diretório atual
  • System () \\ para executar comandos do sistema
  • Call () \\ para executar comandos do sistema

De forma similar Shutil O módulo tem muitas funções que permitem interagir com o sistema. Algumas funções deste módulo são dadas abaixo

  • mover () \\ para mover um arquivo
  • copy () \\ para copiar um arquivo
  • rmtree () \\ para remover todos os arquivos no diretório e subdiretos

DATA HORA O módulo é usado para encontrar a data e a hora atuais. Também é usado para encontrar um dia de semana e muitas outras coisas. Podemos agendar nossa tarefa a qualquer momento e data usando este módulo. Nos casos de uso seguintes, usaremos para encontrar apenas a data e a hora atuais.

  • data hora.hoje () \\ para encontrar a data atual e Tempo

SELÊNIO O módulo é usado para automatizar nosso site de login de site. Podemos fazer login automaticamente em nosso site e atualizá -lo usando SELÊNIO módulo. SELÊNIO tem muitas funções construídas que são usadas para executar diferentes tarefas relacionadas aos navegadores.

Como executar comandos do sistema em python

Podemos executar comandos do sistema em python usando OS e Subprocesso módulos. A seguir, a sintaxe para executar o comando do sistema em python

OS.sistema ('comando')

OU

subprocesso.Call ('Command')

Por exemplo, se queremos listar todos os arquivos e diretórios no diretório atual, executaremos o seguinte comando no script python

OS.sistema ('ls')

OU

subprocesso.Ligue para ('LS')

Como automatizar coisas com python

O Python pode ser usado para automatizar muitos tipos de tarefas diárias que podem economizar tempo. Aqui veremos alguns casos de uso de automação de nossas coisas. Discutiremos a organização de arquivos no diretório de download e mantendo um backup de nossos arquivos importantes.

Organizando arquivos no diretório de download

Quando baixamos qualquer tipo de arquivo, por padrão, ele entra no diretório de download. Quando precisamos encontrar qualquer arquivo, isso pode causar problemas, pois existem muitos tipos de arquivos misturados no diretório de download. Agora vamos escrever um script python para automatizar o sistema de maneira que diferentes tipos de arquivos (e.g. mp3, png, xls etc) vão em diretórios diferentes. O código completo é dado abaixo. Este código verificará cada tipo de arquivo um por um, e criará diretório correspondente. Depois disso, ele moverá o arquivo para diretórios relacionados (e.G… o arquivo mp3 entrará no diretório 'áudio').

OS de importação
Importar fechado
importar datetime
enquanto 1:
#Calcular hora atual, minuto e segundo
Hoje = DateTime.data hora.hoje()
hoje = str (hoje)
current_hour = hoje [11:13]
current_minute = hoje [14:16]
current_sec = hoje [17:19]
# Garantir que o sistema organize arquivos às 08:00
se current_hour == '08' e current_minute == '00' e current_sec == '00':
# alterando o diretório para download
OS.chdir ("path_to_download_directory")
# Salvando todos os nomes de arquivos em uma lista
arquivos = os.ListDir (OS.getcwd ())
Para o nome do arquivo em arquivos:
# ignorando diretórios
se não OS.caminho.ISDIR (nome do arquivo):
# Selecionando arquivos MP3
se '.mp3 'no nome do arquivo:
# Criando diretório de 'áudio', se não existir
se não OS.caminho.existe ('áudio'):
OS.mkdir ('áudio')
# Motivo de arquivo no diretório 'áudio'
Shutil.mover (nome do arquivo, 'áudio')
# Selecionando arquivos MP4
elif '.mp4 'em nome do arquivo:
# Criando diretório de 'vídeo', se não existir
se não OS.caminho.existe ('vídeo'):
OS.mkdir ('vídeo')
# Motivo de arquivo no diretório 'Video'
Shutil.mover (nome do arquivo, 'vídeo')
# Selecionando arquivos PDF
elif '.pdf 'em nome do arquivo:
# Criando diretório 'PDF', se não existir
se não OS.caminho.existe ('pdf'):
OS.mkdir ('pdf')
# Motivo de arquivo no diretório PDF
Shutil.mover (nome do arquivo, 'pdf')
# Selecionando arquivos JPG e PNG
elif '.jpg 'em nome de arquivo ou'.png 'em nome do arquivo:
# Criando diretório de 'imagens', se não existir
se não OS.caminho.existe ('imagens'):
OS.mkdir ('imagens')
# Motivo de arquivo no diretório 'imagens'
Shutil.mover (nome do arquivo, 'imagens')
# Selecionando arquivos do Excel
elif '.XLS 'no nome do arquivo:
# Criando diretório 'Excel', se não existe
se não OS.caminho.Existe ('Excel'):
OS.Mkdir ('Excel')
# Motivo de arquivo no diretório 'Excel'
Shutil.mover (nome do arquivo, 'Excel')
# selecionando '.arquivos ppt '
elif '.ppt 'em nome de arquivo:
# Criando diretório 'Power Point', se não existe
se não OS.caminho.Existe ('Power Point'):
OS.Mkdir ('Power Point')
# Movendo arquivo no diretório 'Power Point'
Shutil.Mova (nome do arquivo, 'Power Point')
# selecionando '.arquivos dos documentos
elif '.docx 'em nome de arquivo:
# Criando diretório de 'arquivo de palavras', se não existe
se não OS.caminho.existe ('arquivo de palavras'):
OS.mkdir ('arquivo de palavras')
# Movendo o arquivo no diretório 'arquivo word'
Shutil.mover (nome do arquivo, 'arquivo de palavras')

Primeiro de tudo, economizaremos o horário atual em diferentes variáveis, então verificaremos se o tempo é exato '08: 00 'ou não. O programa verificará o tempo todos os dias e executará o código se o tempo for '08: 00 ', então o código principal será executado. No código principal, antes de tudo, alteramos nosso diretório para baixar o diretório. Aqui, salvaremos todos os nomes de arquivos em uma lista nomeada arquivos. Agora vamos ler todos os arquivos um por um e filtrar apenas arquivos. Ignoraremos os diretórios, pois vamos organizar apenas arquivos.

Agora vamos verificar cada tipo de arquivo, seja MP3, MP4, JPG, PDF, XLS, PPT e DOCX ou não. Depois de verificar cada tipo de arquivo, verificaremos se o diretório correspondente existe ou não. Por exemplo, se o arquivo for mp3, então verificaremos o diretório 'áudio'. Se o diretório correspondente não existir, criaremos o diretório. Depois de criar diretório, moveremos nosso arquivo nesse diretório. Dessa maneira, todos os arquivos podem ser movidos para seus diretórios correspondentes.

Este código será executado continuamente e continua verificando se o tempo for '08: 00 'ou não. Todos os dias em '08: 00 ', os arquivos serão organizados automaticamente. Este código pode ser programado para ser executado sempre que você inicia seu sistema usando Crontab. Crontab foi explicado abaixo.

Backup automaticamente seus arquivos usando comandos do sistema

Você tem alguns arquivos importantes em um diretório relacionado ao seu projeto e, de alguma forma, alguns arquivos são excluídos. Então o que você irá fazer? Nesse tipo de situação, criar um backup de seus arquivos é importante. Mas criar um backup de seus arquivos é realmente chato e o tempo que leva a tarefa. Esta tarefa pode ser realizada automaticamente escrevendo um script python. A seguir, o código para executar esta tarefa. Este código converterá cada arquivo em arquivo zip, então ele criará um diretório de backup se não existir. Depois disso, o arquivo zip será movido no diretório de backup.

OS de importação
importar datetime
enquanto 1:
# economizando tempo atual
Hoje = DateTime.data hora.hoje()
hoje = str (hoje)
current_hour = hoje [11:13]
current_minute = hoje [14:16]
current_sec = hoje [17:19]
# Garantir que o código seja executado em exato '08: 00 '
se current_hour == '08' e current_minute == '00' e current_sec == '00':
# Alterar diretório para documentos
OS.chdir ('path_to_documents_directory')
# Salvando todos os nomes de arquivos em uma lista
arquivos = os.ListDir (OS.getcwd ())
# Criando diretório de 'backup', se não existir
se não OS.caminho.existe ('backup'):
OS.mkdir ('backup')
para arquivo em arquivos:
# ignorando diretórios
se não OS.caminho.ISDIR (arquivo):
# Definindo um nome de arquivo sem espaços
original_name = arquivo
arquivo = arquivo.dividir(" ")
file_name = "".Junte -se (arquivo)
# Definindo zip_filename
zip_file_name = file_name+".fecho eclair"
# Verificação se já existe o arquivo no diretório de backup ou não
se não OS.caminho.existe ('backup/'+zip_file_name):
# alterando o nome do arquivo sem espaços
OS.renomear (original_name, file_name)
# Criando arquivo zip usando o comando do sistema
OS.sistema ("zip"+zip_file_name+""+file_name)
#Moving FILE ZIP no diretório de backup usando o comando do sistema
OS.System ("MV"+ZIP_FILE_NAME+"Backup")
# Alterar o nome do arquivo para seu nome original
OS.Renomear (file_name, original_name)

Primeiro de tudo, economizaremos tempo atual em variáveis ​​e depois verificaremos se o tempo é '08: 00 'ou não. Se o tempo for exato '08: 00 ', o script principal será executado. No código principal, antes de tudo, vamos ao diretório em que arquivos importantes estão presentes. Então salvamos todos os nomes de arquivos em uma lista. Agora criaremos um 'backup' de diretório no qual salvaremos todos os arquivos ZIP. Se este diretório já existir, então ignoraremos isso. Agora vamos ler cada arquivo e verificar se esses são arquivos ou não. Os diretórios serão ignorados e os arquivos serão considerados.

Para criar um arquivo zip de um arquivo usando o comando do sistema, antes de tudo, renomearemos esse arquivo sem espaços como um nome de arquivo com espaços é considerado um arquivo diferente em todos os espaço, quando executado em um comando do sistema usando script python. O nome do arquivo é salvo em uma variável 'original_filename' e o arquivo é renomeado sem espaços. Agora vamos definir o nome do arquivo zip igual ao nome do arquivo com extensão '.fecho eclair'.

Depois disso, usaremos o comando do sistema 'zip' para fechar este arquivo e, em seguida, moveremos esse arquivo zip no diretório 'backup' usando o comando do sistema 'mv'. Em seguida, renomearemos novamente o arquivo com seu nome original com espaços. Este código será agendado no sistema para executar sempre automaticamente quando você iniciar seu sistema usando o Crontab.

Automatize a execução de um script usando Crontab

Escrevemos os scripts de automação acima. Agora queremos executar esses scripts automaticamente sempre que nosso sistema reinicia. Para fazer isso, adicionamos nosso script em Crontab. Para adicionar a tarefa em Crontab, faça as seguintes etapas

Primeiro de tudo, digite o seguinte comando para editar o arquivo Crontab

ubuntu@ubuntu: ~ $ crontab -e

-e bandeira significa abrir Crontab no modo de edição. Depois de abrir o arquivo Crontab agora, adicionaremos nossa tarefa neste arquivo usando o seguinte comando no final do arquivo

@reboot python/path/to/python/script

Isso executará o script python automaticamente sempre quando você iniciar seu sistema.

Conclusão

Neste artigo, a importância da automação na vida prática foi explicada. Ao ler este artigo, você tem uma idéia de que você pode automatizar suas tarefas simples que você realiza todos os dias. Você definitivamente deve procurar mais bibliotecas e funções do Python para obter uma automação melhor e fácil.