Introduzione all'uso di Python in Windows per la creazione di script e l'automazione

Questa guida dettagliata contiene informazioni utili per configurare l'ambiente di sviluppo e iniziare a usare Python per creare script e automatizzare operazioni di file system in Windows.

Nota

L'articolo illustra come configurare l'ambiente per l'uso di alcune utili librerie in Python che consentono di automatizzare le attività tra piattaforme, ad esempio la ricerca nel file system, l'accesso a Internet, l'analisi dei tipi di file e così via, adottando un approccio incentrato su Windows. Per le operazioni specifiche di Windows, è possibile scegliere tra ctypes, una libreria di funzioni esterna compatibile con C per Python, winreg, funzioni che espongono l'API del Registro di sistema di Windows a Python e Python/WinRT, che consente l'accesso alle API di Windows Runtime da Python.

Configurare l'ambiente di sviluppo

Quando usi Python per scrivere script che eseguono operazioni di file system, è consigliabile installare Python da Microsoft Store. L'installazione tramite Microsoft Store prevede l'uso dell'interprete Python3 di base, ma consente di eseguire la configurazione delle impostazioni di PATH per l'utente corrente senza richiedere l'accesso come amministratore, oltre a fornire aggiornamenti automatici.

Se usi Python per lo sviluppo Web in Windows, è consigliabile eseguire un'installazione diversa usando il sottosistema Windows per Linux. Per una procedura dettagliata, consulta la guida: Introduzione all'uso di Python per lo sviluppo Web in Windows. Se non si ha familiarità con Python, provare la guida: Introduzione all'uso di Python in Windows per principianti. Per alcuni scenari avanzati, ad esempio quando è necessario accedere/modificare file installati di Python, effettuare copie di file binari o usare DLL di Python direttamente, si consiglia di scaricare una versione specifica di Python direttamente da python.org o di provare a installare un'alternativa, ad esempio Anaconda, Jython, PyPy, WinPython, IronPython e così via. Questa operazione è consigliabile solo per i programmatori Python più esperti con un motivo specifico per scegliere un'implementazione alternativa.

Installare Python

Per installare Python con Microsoft Store:

  1. Passare al menu Start (icona DI Windows in basso a sinistra), digitare "Microsoft Store" e selezionare il collegamento per aprire lo Store.

  2. Dopo l'apertura dello Store, selezionare Ricerca nel menu in alto a destra e immettere "Python". Selezionare la versione di Python che si vuole usare dai risultati in App. È consigliabile usare la versione più recente, a meno che non esista un motivo particolare, come ad esempio se è necessario usare la versione specifica di un progetto precedente a cui si prevede di lavorare. Dopo aver determinato quale versione si vuole installare, selezionare Installa.

  3. Al termine del processo di download e installazione di Python, apri Windows PowerShell usando il menu Start (icona di Windows in basso a sinistra). Dopo l'apertura di PowerShell, immetti Python --version per verificare che Python3 sia stato installato nel computer.

  4. L'installazione di Python da Microsoft Store include pip, l'utilità standard di gestione pacchetti. pip consente di installare e gestire altri pacchetti che non fanno parte della libreria standard di Python. Per verificare se è disponibile anche pip per l'installazione e la gestione dei pacchetti, immettere pip --version.

Installare Visual Studio Code

Se si installa VS Code come editor di testo/IDE (Integrated Development Environment), è possibile sfruttare IntelliSense (che facilita il completamento del codice), Linting (che consente di evitare errori nel codice), il supporto per il debug (che consente di trovare errori nel codice dopo l'esecuzione), i frammenti di codice (modelli per piccoli blocchi di codice riutilizzabili) e il testing unità (che consente di testare l'interfaccia del codice con tipi di input diversi).

Scarica VS Code per Windows e segui le istruzioni di installazione: https://code.visualstudio.com.

Installare l'estensione Python Microsoft

Per sfruttare i vantaggi delle funzionalità di supporto di VS Code, devi installare l'estensione Python Microsoft. Ulteriori informazioni.

  1. Per aprire la finestra Estensioni di VS Code, premere CTRL+MAIUSC+X (oppure usare il menu per passare a Visualizza>Estensioni).

  2. Nella casella Cerca le estensioni nel Marketplace in alto, immettere: Python.

  3. Trova l'estensione Python (ms-python.python) di Microsoft e seleziona il pulsante verde Installa.

Aprire il terminale PowerShell integrato in VS Code

VS Code contiene un terminale integrato che consente di aprire una riga di comando di Python con PowerShell, stabilendo un flusso di lavoro automatico tra l'editor del codice e la riga di comando.

  1. Per aprire il terminale in VS Code, seleziona Visualizza>Terminale oppure usa il tasto di scelta rapida CTRL+` (usando il carattere di apice inverso).

    Nota

    Il terminale predefinito è PowerShell, ma se devi cambiarlo, usa CTRL+MAIUSC+P per accedere al riquadro comandi. Immettere il Terminale: seleziona shell predefinita per visualizzare un elenco di opzioni del terminale che include PowerShell, Prompt dei comandi, WSL e così via. Seleziona l'opzione da usare e premi CTRL+MAIUSC+` (usando l'apice inverso) per creare un nuovo terminale.

  2. All'interno del terminale di VS Code immetti python per aprire Python.

  3. Per provare l'interprete Python, immettere print("Hello World"). Python restituirà l'istruzione "Hello World".

    Python command line in VS Code

  4. Per uscire da Python, è possibile immettere exit(), quit() o premere CTRL + Z.

Installare Git (facoltativo)

Se si prevede di collaborare con altri utenti alla modifica del codice Python oppure si ospita il progetto in un sito open source, come GitHub, VS Code supporta il controllo della versione con Git. La scheda Controllo del codice sorgente in VS Code tiene traccia di tutte le modifiche e include i comandi Git comuni (add, commit, push, pull) integrati nell'interfaccia utente. Per supportare il pannello Controllo codice sorgente, è necessario prima installare Git.

  1. Scaricare e installare Git per Windows dal sito Web git-scm.

  2. Durante l'Installazione guidata verranno poste alcune domande sulle impostazioni per l'installazione di GIT. È consigliabile usare tutte le impostazioni predefinite, a meno che non si abbia un motivo specifico per modificarle.

  3. Se non hai mai usato GIT, consulta le guide di GitHub per iniziare.

Script di esempio per visualizzare la struttura della directory del file system

Le normali attività di amministrazione dei sistemi possono richiedere un notevole tempo, ma è possibile automatizzarle con uno script Python. Ad esempio, Python può leggere il contenuto del file system del computer ed eseguire operazioni quali la stampa di una struttura di file e directory, lo spostamento di cartelle da una directory a un'altra o la ridenominazione di centinaia di file. In genere, l'esecuzione manuale di attività come queste può richiedere moltissimo tempo. In alternativa, è possibile usare uno script Python.

Per iniziare, useremo un semplice script che analizza un albero di directory e visualizza la struttura di directory.

  1. Apri PowerShell usando il menu Start (icona di Windows in basso a sinistra).

  2. Crea una directory per il progetto con il comando mkdir python-scripts e quindi usa il comando cd python-scripts per aprire tale directory.

  3. Crea alcune directory da usare con lo script di esempio:

    mkdir food, food\fruits, food\fruits\apples, food\fruits\oranges, food\vegetables
    
  4. All'interno di tali directory crea alcuni file da usare con lo script:

    new-item food\fruits\banana.txt, food\fruits\strawberry.txt, food\fruits\blueberry.txt, food\fruits\apples\honeycrisp.txt, food\fruits\oranges\mandarin.txt, food\vegetables\carrot.txt
    
  5. Crea un nuovo file python nella directory python-scripts:

    mkdir src
    new-item src\list-directory-contents.py
    
  6. Apri il progetto in VS Code immettendo code .

  7. Per aprire la finestra Esplora risorse di VS Code, premi CTRL+MAIUSC+E (oppure usa il menu per passare a Visualizza>Esplora risorse) e seleziona il file list-directory-contents.py appena creato. L'estensione Python Microsoft caricherà automaticamente un interprete Python. L'interprete caricato è indicato nella parte inferiore della finestra di VS Code.

    Nota

    Python è un linguaggio interpretato, vale a dire che funge da macchina virtuale, emulando un computer fisico. Esistono diversi tipi di interpreti Python che è possibile usare: Python 2, Python 3, Anaconda, PyPy, ecc. Per eseguire il codice Python e ottenere Python IntelliSense, è necessario indicare a VS Code l'interprete da usare. È consigliabile usare l'interprete scelto da VS Code per impostazione predefinita (in questo caso Python 3), a meno che tu non abbia un motivo specifico per sceglierne uno diverso. Per cambiare l'interprete Python, seleziona l'interprete attualmente visualizzato nella barra blu nella parte inferiore della finestra di VS Code oppure apri il riquadro comandi (CTRL+MAIUSC+P) e immetti il comando Python: seleziona Interprete. Verrà visualizzato un elenco degli interpreti Python attualmente installati. Altre informazioni sulla configurazione degli ambienti Python.

    Select Python interpreter in VS Code

  8. Incolla il codice seguente nel file list-directory-contents.py e quindi seleziona Salva:

    import os
    
    root = os.path.join('..', 'food')
    for directory, subdir_list, file_list in os.walk(root):
        print('Directory:', directory)
        for name in subdir_list:
            print('Subdirectory:', name)
        for name in file_list:
            print('File:', name)
        print()
    
  9. Apri il terminale integrato di VS Code (CTRL +`, usando il carattere di apice inverso) e accedi alla directory src in cui hai appena salvato lo script Python:

    cd src
    
  10. Per eseguire lo script in PowerShell, usa il comando:

    python3 .\list-directory-contents.py
    

    L'output visualizzato è simile al seguente:

    Directory: ..\food
    Subdirectory: fruits
    Subdirectory: vegetables
    
    Directory: ..\food\fruits
    Subdirectory: apples
    Subdirectory: oranges
    File: banana.txt
    File: blueberry.txt
    File: strawberry.txt
    
    Directory: ..\food\fruits\apples
    File: honeycrisp.txt
    
    Directory: ..\food\fruits\oranges
    File: mandarin.txt
    
    Directory: ..\food\vegetables
    File: carrot.txt
    
  11. Usa Python per stampare l'output relativo alla directory del file system nel relativo file di testo immettendo questo comando direttamente nel terminale di PowerShell: python3 list-directory-contents.py > food-directory.txt

Congratulazioni. hai completato la creazione di uno script per l'amministrazione automatizzata dei sistemi che legge la directory e i file creati e usa Python per visualizzare e quindi stampare la struttura di directory nel relativo file di testo.

Nota

Se non si riesce a installare Python 3 dal Microsoft Store, vedere il problema per un esempio di come gestire il percorso per questo script di esempio.

Script di esempio per modificare di tutti i file di una directory

Per questo esempio si usano i file e le directory appena creati, anche se ognuno dei file viene rinominato aggiungendo la data dell'ultima modifica all'inizio del nome file.

  1. All'interno della cartella src nella directory python-scripts crea un nuovo file Python per lo script:

    new-item update-filenames.py
    
  2. Apri il file update-filenames.py, incolla il codice seguente nel file e salvalo:

    Nota

    os.getmtime restituisce un timestamp in tick, che non è facilmente leggibile. Deve essere convertito prima in una stringa data/ora standard.

    import datetime
    import os
    
    root = os.path.join('..', 'food')
    for directory, subdir_list, file_list in os.walk(root):
        for name in file_list:
            source_name = os.path.join(directory, name)
            timestamp = os.path.getmtime(source_name)
            modified_date = str(datetime.datetime.fromtimestamp(timestamp)).replace(':', '.')
            target_name = os.path.join(directory, f'{modified_date}_{name}')
    
            print(f'Renaming: {source_name} to: {target_name}')
    
            os.rename(source_name, target_name)
    
  3. Per testare lo script update-filenames.py, esegui il comando python3 update-filenames.py. A questo punto, esegui di nuovo lo script list-directory-contents.py con il comando python3 list-directory-contents.py

  4. L'output visualizzato è simile al seguente:

    Renaming: ..\food\fruits\banana.txt to: ..\food\fruits\2019-07-18 12.24.46.385185_banana.txt
    Renaming: ..\food\fruits\blueberry.txt to: ..\food\fruits\2019-07-18 12.24.46.391170_blueberry.txt
    Renaming: ..\food\fruits\strawberry.txt to: ..\food\fruits\2019-07-18 12.24.46.389174_strawberry.txt
    Renaming: ..\food\fruits\apples\honeycrisp.txt to: ..\food\fruits\apples\2019-07-18 12.24.46.395160_honeycrisp.txt
    Renaming: ..\food\fruits\oranges\mandarin.txt to: ..\food\fruits\oranges\2019-07-18 12.24.46.398151_mandarin.txt
    Renaming: ..\food\vegetables\carrot.txt to: ..\food\vegetables\2019-07-18 12.24.46.402496_carrot.txt
    
    PS C:\src\python-scripting\src> python3 .\list-directory-contents.py
    ..\food\
    Directory: ..\food
    Subdirectory: fruits
    Subdirectory: vegetables
    
    Directory: ..\food\fruits
    Subdirectory: apples
    Subdirectory: oranges
    File: 2019-07-18 12.24.46.385185_banana.txt
    File: 2019-07-18 12.24.46.389174_strawberry.txt
    File: 2019-07-18 12.24.46.391170_blueberry.txt
    
    Directory: ..\food\fruits\apples
    File: 2019-07-18 12.24.46.395160_honeycrisp.txt
    
    Directory: ..\food\fruits\oranges
    File: 2019-07-18 12.24.46.398151_mandarin.txt
    
    Directory: ..\food\vegetables
    File: 2019-07-18 12.24.46.402496_carrot.txt
    
    
  5. Usa Python per stampare i nuovi nomi della directory del file system con il timestamp last-modified aggiunto nel relativo file di testo immettendo questo comando direttamente nel terminale di PowerShell: python3 list-directory-contents.py > food-directory-last-modified.txt

Ci auguriamo di averti illustrato alcuni aspetti interessanti sull'uso degli script Python per l'automazione delle attività di base di amministrazione dei sistemi. Naturalmente, l'argomento è molto più vasto, ma queste informazioni ti saranno utili per iniziare col piede giusto. Di seguito sono elencate alcune risorse aggiuntive che potrai consultare per approfondire l'argomento.

Risorse aggiuntive