Perché automatizziamo le nostre cose?
L'automazione delle nostre cose può semplificarci la vita. Ha molti vantaggi, ma alcuni importanti vantaggi dell'automazione sono riportati di seguito
- Il primo e più importante vantaggio dell'automazione è il risparmio di tempo.
- Possiamo aumentare l'efficienza del nostro lavoro (i.e. più lavoro in meno tempo)
- L'accuratezza delle attività pianificate può essere migliorata.
- Automatizzando le cose, l'interazione umana con il sistema viene ridotta, quindi le cose noiose vengono automatizzate.
Automazione con Python
Ci sono molti linguaggi di scripting come bash, perl ecc. per automatizzare i processi manuali ma Python fornisce un ambiente fattibile per gestire le nostre esigenze. È più facile automatizzare le cose usando il linguaggio di programmazione Python che in qualsiasi altro linguaggio. Python ha molti moduli di automazione (i.e. sottoprocesso, shutil, os, pyautogui, selenium eccetera.) che può essere utilizzato nell'automazione. Vedremo alcuni casi d'uso di come automatizziamo le nostre cose.
Moduli di automazione in Python
Qui discuteremo alcuni moduli di automazione in Python come OS, SOTTOPROCESSO, SHUTIL, DATETIME, SELENIUM eccetera. Questi moduli sono usati per eseguire comandi di sistema e possono anche essere usati per manipolare directory di sistema. Questi moduli hanno funzioni integrate che semplificano l'esecuzione di attività sul sistema.
OS e SOTTOPROCESSO i moduli sono usati quasi per lo stesso scopo. Di seguito sono riportate alcune delle funzioni integrate di questi moduli
- chdir() \\ Per cambiare directory
- mkdir() \\ Per creare una nuova directory
- rename() \\ Per rinominare un file
- listdir() \\ Per elencare tutti i file e le directory
- getcwd() \\ Per conoscere la nostra directory corrente
- system() \\ Per eseguire i comandi di sistema
- call() \\ Per eseguire i comandi di sistema
Allo stesso modo SHUTIL il modulo ha molte funzioni che permette di interagire con il sistema. Alcune funzioni di questo modulo sono riportate di seguito
- move() \\ Per spostare un file
- copy() \\ Per copiare un file
- rmtree() \\ Per rimuovere tutti i file nella directory e nelle sottodirectory
APPUNTAMENTO il modulo viene utilizzato per trovare la data e l'ora correnti. È anche usato per trovare il giorno della settimana e molte altre cose. Possiamo programmare il nostro compito in qualsiasi momento e data utilizzando questo modulo. Nei seguenti casi d'uso lo useremo per trovare solo la data e l'ora correnti.
- appuntamento.today() \\ Per trovare la data corrente e Tempo
SELENIO Il modulo viene utilizzato per automatizzare il processo di accesso al nostro sito web. Possiamo accedere automaticamente al nostro sito Web e aggiornarlo utilizzando SELENIO modulo. SELENIO ha molte funzioni integrate che vengono utilizzate per eseguire diverse attività relative ai browser.
Come eseguire i comandi di sistema in Python
Possiamo eseguire comandi di sistema in Python usando OS e SOTTOPROCESSO moduli. Di seguito è riportata la sintassi per eseguire il comando di sistema in python
os.sistema('comando')O
sottoprocesso.call('comando')Ad esempio, se vogliamo elencare tutti i file e le directory nella directory corrente, eseguiremo il seguente comando nello script python
os.sistema('ls')O
sottoprocesso.call('ls')Come automatizzare le cose con Python
Python può essere utilizzato per automatizzare molti tipi di attività quotidiane che possono far risparmiare tempo. Qui vedremo alcuni casi d'uso per automatizzare le nostre cose. Discuteremo l'organizzazione dei file nella directory di download e il mantenimento di un backup dei nostri file importanti.
Disposizione dei file nella directory di download
Quando scarichiamo qualsiasi tipo di file, per impostazione predefinita va nella directory di download. Quando dobbiamo trovare un file, potrebbe causare problemi in quanto ci sono molti tipi di file misti nella directory di download. Ora scriveremo uno script python per automatizzare il sistema in modo tale che diversi tipi di file (e.g. mp3, png, xls ecc.) va in directory diverse. Il codice completo è riportato di seguito. Questo codice controllerà ogni tipo di file uno per uno, quindi creerà la directory corrispondente. Dopodiché sposterà il file nelle directory correlate (e.g… il file mp3 andrà nella directory 'Audio').
importare il sistema operativoimport shutil
data e ora di importazione
mentre 1:
#calcolo dell'ora, dei minuti e dei secondi attuali
oggi = data e ora.appuntamento.oggi()
oggi = str(oggi)
ora_corrente = oggi[11:13]
minuto_corrente = oggi[14:16]
sec_corrente = oggi[17:19]
# assicurandosi che il sistema organizzi i file alle 08:00
if current_hour == '08' e current_minute == '00' e current_sec == '00':
# cambiando directory per scaricare
os.chdir("percorso_della_directory_download")
# salvataggio di tutti i nomi di file in un elenco
file = os.listdir(os.getcwd())
per il nome del file nei file:
# ignorando le directory
se non os.sentiero.isdir(nome file):
# selezione di file mp3
Se '.mp3' nel nome del file:
# creazione della directory 'Audio' se non esiste
se non os.sentiero.esiste('Audio'):
os.mkdir('Audio')
# spostamento di file nella directory 'Audio'
chiusa.move(nome file, 'Audio')
# selezione di file mp4
elifa'.mp4' nel nome del file:
# creazione della directory 'Video' se non esiste
se non os.sentiero.esiste('Video'):
os.mkdir('Video')
# spostamento di file nella directory 'Video'
chiusa.move(nome file, 'Video')
# selezione dei file pdf
elifa'.pdf' nel nome del file:
# creazione della directory 'PDF' se non esiste
se non os.sentiero.esiste('PDF'):
os.mkdir('PDF')
# spostamento del file nella directory PDF
chiusa.move(nome file, 'PDF')
# selezione di file jpg e png
elifa'.jpg' nel nome del file o '.png' nel nome del file:
# creazione della directory 'Immagini' se non esiste
se non os.sentiero.esiste('Immagini'):
os.mkdir('Immagini')
# spostamento del file nella directory 'Immagini'
chiusa.move(nome file, 'Immagini')
# selezione di file excel
elifa'.xls' nel nome del file:
# creazione della directory 'Excel' se non esiste
se non os.sentiero.esiste('Excel'):
os.mkdir('Excel')
# spostamento di file nella directory 'Excel'
chiusa.move(nomefile, 'Excel')
# selezionando '.file ppt'
elifa'.ppt' nel nome del file:
# creazione della directory 'Power Point' se non esiste
se non os.sentiero.esiste('Power Point'):
os.mkdir('Power Point')
# spostamento di file nella directory 'Power Point'
chiusa.move(nome file, 'Power Point')
# selezionando '.file di documenti
elifa'.docx' nel nome del file:
# creazione della directory 'Word File' se non esiste
se non os.sentiero.esiste('File Word'):
os.mkdir('File Word')
# spostamento di file nella directory 'File di Word'
chiusa.move(nomefile, 'File Word')
Prima di tutto, salveremo l'ora corrente in diverse variabili, quindi controlleremo se l'ora è esatta '08:00' o meno. Il programma controllerà l'ora ogni giorno ed eseguirà il codice se l'ora è "08:00", quindi verrà eseguito il codice principale. Nel codice principale, prima di tutto cambiamo la nostra directory in Download directory. Qui salveremo tutti i nomi di file in un elenco chiamato file. Ora leggeremo tutti i file uno per uno e filtreremo solo i file. Ignoreremo le directory poiché organizzeremo solo i file.
Ora controlleremo ogni tipo di file se è mp3, mp4, jpg, pdf, xls, ppt e docx o meno. Dopo aver controllato ogni tipo di file, controlleremo se esiste o meno la directory corrispondente. Ad esempio, se il file è mp3, controlleremo che la directory "Audio" esista o meno. Se la directory corrispondente non esiste, creeremo la directory. Dopo aver creato la directory sposteremo il nostro file in quella directory. In questo modo tutti i file possono essere spostati nelle directory corrispondenti.
Questo codice verrà eseguito continuamente e continuerà a controllare se l'ora è "08:00" o meno. Tutti i giorni alle '08:00', i file verranno organizzati automaticamente. Questo codice può essere programmato per essere eseguito ogni volta che avvii il sistema usando crontab. Crontab è stato spiegato di seguito.
Backup automatico dei file utilizzando i comandi di sistema
Hai alcuni file importanti in una directory relativa al tuo progetto e in qualche modo alcuni file vengono eliminati. Allora cosa farai? In questo tipo di situazione, è importante creare un backup dei file. Ma creare un backup dei tuoi file è davvero noioso e richiede tempo. Questa attività può essere eseguita automaticamente scrivendo uno script Python. Di seguito è riportato il codice per eseguire questa attività. Questo codice convertirà ogni file in un file zip, quindi creerà una directory di backup se non esiste. Successivamente, il file zip verrà spostato nella directory di backup.
importare il sistema operativodata e ora di importazione
mentre 1:
# risparmio dell'ora corrente current
oggi = data e ora.appuntamento.oggi()
oggi= str(oggi)
ora_corrente = oggi[11:13]
minuto_corrente = oggi[14:16]
sec_corrente = oggi[17:19]
# assicurandosi che il codice venga eseguito esattamente alle "08:00"
if current_hour == '08' e current_minute == '00' e current_sec == '00':
# cambio directory in documenti
os.chdir('path_to_documents_directory')
# salvataggio di tutti i nomi di file in un elenco
file = os.listdir(os.getcwd())
# creazione della directory 'backup' se non esiste
se non os.sentiero.esiste('backup'):
os.mkdir('backup')
per file in file:
# ignorando le directory
se non os.sentiero.isdir (file):
# definire un nome di file senza spazi
nome_originale = file
file = file.Diviso(" ")
nome_file = "".unisciti (file)
# definendo zip_filename
zip_file_name = file_name+".cerniera lampo"
# controlla se il file esiste già nella directory di backup o no
se non os.sentiero.esiste('backup/'+zip_file_name):
# modifica del nome del file senza spazi
os.rinomina (nome_originale, nome_file)
# creazione del file zip usando il comando di sistema
os.system("zip "+zip_file_name+" "+file_name)
#spostare il file zip nella directory di backup usando il comando di sistema
os.system("mv "+zip_file_name+" backup")
# cambiando il nome del file con il suo nome originale
os.rinomina(nome_file, nome_originale)
Prima di tutto salveremo l'ora corrente in variabili e poi controlleremo se l'ora è "08:00" o meno. Se l'ora è esattamente '08:00', verrà eseguito lo script principale. Nel codice principale, prima di tutto, andiamo nella directory in cui sono presenti i file importanti. Quindi salviamo tutti i nomi dei file in un elenco. Ora creeremo una directory 'backup' in cui salveremo tutti i file zip. Se questa directory esiste già, la ignoreremo. Ora leggeremo ogni file e controlleremo se questi sono file o meno. Le directory verranno ignorate e i file verranno presi in considerazione.
Per creare un file zip di un file usando il comando di sistema, prima di tutto rinomineremo questo file senza spazi poiché un nome file con spazi è considerato un file diverso in ogni spazio, quando eseguito in un comando di sistema usando lo script python. Il nome del file viene salvato in una variabile 'nomefile_originale' e il file viene rinominato senza spazi. Ora definiremo il nome del file zip uguale al nome del file con estensione '.cerniera lampo'.
Dopodiché utilizzeremo il comando di sistema "zip" per comprimere questo file e quindi lo sposteremo nella directory "backup" utilizzando il comando di sistema "mv". Quindi rinomineremo di nuovo il file con il suo nome originale con spazi al suo interno. Questo codice verrà programmato sul sistema per essere eseguito automaticamente ogni volta che avvii il sistema utilizzando crontab.
Automatizza l'esecuzione di uno script usando Crontab
Abbiamo scritto gli script di automazione sopra. Ora vogliamo eseguire questi script automaticamente ogni volta che il nostro sistema si riavvia. Per fare ciò, aggiungiamo il nostro script in crontab. Per aggiungere attività in crontab, procedi come segue
Prima di tutto, digita il seguente comando per modificare il file crontab
ubuntu@ubuntu:~$ crontab -e-e flag significa aprire crontab in modalità di modifica. Dopo aver aperto il file crontab ora aggiungeremo la nostra attività in questo file usando il seguente comando alla fine del file
@reboot python /percorso/a/python/scriptQuesto eseguirà automaticamente lo script python ogni volta che avvii il tuo sistema.
Conclusione
In questo articolo è stata spiegata l'importanza dell'automazione nella vita pratica. Leggendo questo articolo, ti fai un'idea di come automatizzare le tue semplici attività che svolgi ogni giorno. Dovresti assolutamente cercare più librerie e funzioni Python per un'automazione migliore e semplice.