Delen via


Aan de slag met Python in Windows voor scripting en automatisering

Hier volgt een stapsgewijze handleiding voor het instellen van uw ontwikkelomgeving en het gebruik van Python voor het uitvoeren van scripts en het automatiseren van bestandssysteembewerkingen in Windows.

Opmerking

In dit artikel wordt beschreven hoe u uw omgeving instelt voor het gebruik van enkele nuttige bibliotheken in Python waarmee taken op verschillende platforms kunnen worden geautomatiseerd, zoals het doorzoeken van uw bestandssysteem, toegang tot internet, het parseren van bestandstypen, enzovoort, vanuit een windows-gecentreerde benadering. Voor windows-specifieke bewerkingen bekijkt u ctypes, een C-compatibele refererende functiebibliotheek voor Python, winreg, functies die de Windows-register-API beschikbaar maken voor Python en Python/WinRT, waardoor toegang tot Windows Runtime-API's vanuit Python mogelijk is.

Uw ontwikkelomgeving instellen

Wanneer u Python gebruikt om scripts te schrijven die bestandssysteembewerkingen uitvoeren, raden we u aan Python te installeren vanuit de Microsoft Store. Installeren via de Microsoft Store maakt gebruik van de eenvoudige Python3-interpreter, maar verwerkt het instellen van uw PATH-instellingen voor de huidige gebruiker (om te voorkomen dat beheerderstoegang nodig is), naast het leveren van automatische updates.

Als u Python gebruikt voor webontwikkeling in Windows, raden we u aan een andere installatie te gebruiken met behulp van het Windows-subsysteem voor Linux. Bekijk een overzicht in onze handleiding: Aan de slag met Python voor webontwikkeling in Windows. Als u nog niet eerder met Python werkt, kunt u onze handleiding proberen: Aan de slag met Python in Windows voor beginners. Voor sommige geavanceerde scenario's (zoals het rechtstreeks downloaden/wijzigen van geïnstalleerde Python-bestanden, kopieën van binaire bestanden maken of Python-DLL's gebruiken), kunt u overwegen om rechtstreeks vanuit python.org een specifieke Python-release te downloaden of een alternatief te installeren, zoals Anaconda, Jython, PyPy, WinPython, IronPython, enzovoort. We raden dit alleen aan als u een geavanceerdere Python-programmeur bent met een specifieke reden voor het kiezen van een alternatieve implementatie.

Python installeren

Python installeren met behulp van de Microsoft Store:

  1. Ga naar het startmenu (pictogram linksonder in Windows), typ 'Microsoft Store', selecteer de koppeling om de store te openen.

  2. Zodra de winkel is geopend, selecteert u Zoeken in het menu rechtsboven en voert u Python in. Selecteer in de resultaten onder Apps welke versie van Python u wilt gebruiken. U wordt aangeraden de meest recente te gebruiken, tenzij u een reden hebt om niet te doen (zoals uitlijnen met de versie die wordt gebruikt in een bestaand project waaraan u van plan bent te werken). Nadat u hebt bepaald welke versie u wilt installeren, selecteert u Ophalen.

  3. Zodra Python het download- en installatieproces heeft voltooid, opent u Windows PowerShell met behulp van het startmenu (pictogram linksonder in Windows). Zodra PowerShell is geopend, voert u in Python --version om te bevestigen dat Python3 op uw computer is geïnstalleerd.

  4. De Microsoft Store-installatie van Python bevat pip, de standaardpakketbeheerder. Met Pip kunt u extra pakketten installeren en beheren die geen deel uitmaken van de standaardbibliotheek van Python. Als u wilt bevestigen dat u ook pip beschikbaar hebt voor het installeren en beheren van pakketten, voert u het volgende in pip --version.

Visual Studio Code installeren

Door VS Code te gebruiken als uw teksteditor /integrated development environment (IDE), kunt u profiteren van IntelliSense (een hulp bij het voltooien van code), Linting (helpt fouten in uw code te voorkomen), ondersteuning voor foutopsporing (helpt u fouten in uw code te vinden nadat u deze hebt uitgevoerd), codefragmenten (sjablonen voor kleine herbruikbare codeblokken) en eenheidstests (testen van de interface van uw code met verschillende typen invoer).

Download VS Code voor Windows en volg de installatie-instructies: https://code.visualstudio.com.

De Microsoft Python-extensie installeren

U moet de Microsoft Python-extensie installeren om te kunnen profiteren van de ondersteuningsfuncties van VS Code. Meer informatie.

  1. Open het venster VS Code-extensies door Ctrl+Shift+X- in te voeren (of gebruik het menu om naar >Extensiesweergeven te gaan).

  2. Voer in het vak Zoekextensies in Marketplace het volgende in: Python.

  3. Zoek de Python (ms-python.python)-extensie van Microsoft en selecteer de groene knop Installeren.

Open de geïntegreerde PowerShell-terminal in VS Code

VS Code bevat een ingebouwde terminal waarmee u een Python-opdrachtregel kunt openen met PowerShell, waarmee u een naadloze werkstroom tot stand kunt brengen tussen uw code-editor en opdrachtregel.

  1. Open de terminal in VS Code, selecteer Terminal weergeven> of gebruik de sneltoets Ctrl+' (met het teken backtick).

    Opmerking

    De standaardterminal moet PowerShell zijn, maar als u deze wilt wijzigen, gebruikt u Ctrl+Shift+P om het opdrachtenpalet in te voeren. Voer Terminal in: Selecteer Standaardshell en er wordt een lijst met terminalopties weergegeven met PowerShell, opdrachtprompt, WSL, enzovoort. Selecteer het item dat u wilt gebruiken en voer Ctrl+Shift+' (met behulp van de backtick) in om een nieuwe terminal te maken.

  2. Open Python in uw VS Code-terminal door het volgende in te voeren: python

  3. Probeer de Python-interpreter uit door het volgende in te voeren: print("Hello World"). Python retourneert uw verklaring "Hallo wereld".

    Python-opdrachtregel in VS Code

  4. Als u Python wilt afsluiten, kunt u exit(), quit() invoeren of Ctrl-Z selecteren.

Git installeren (optioneel)

Als u van plan bent om samen te werken met anderen aan uw Python-code of uw project host op een opensource-site (zoals GitHub), ondersteunt VS Code versiebeheer met Git. Het tabblad Broncodebeheer in VS Code houdt al uw wijzigingen bij en bevat algemene Git-opdrachten (toevoegen, doorvoeren, pushen, pull) die rechtstreeks in de gebruikersinterface zijn ingebouwd. U moet Git eerst installeren om het configuratiescherm van de bron te kunnen inschakelen.

  1. Download en installeer Git voor Windows vanaf de git-scm-website.

  2. Er is een installatiewizard opgenomen die u een reeks vragen stelt over instellingen voor uw Git-installatie. U wordt aangeraden alle standaardinstellingen te gebruiken, tenzij u een specifieke reden hebt om iets te wijzigen.

  3. Als u nog nooit met Git hebt gewerkt, kunt u GitHub Guides u helpen aan de slag te gaan.

Voorbeeldscript om de structuur van uw bestandssysteemmap weer te geven

Algemene systeembeheertaken kunnen veel tijd in beslag nemen, maar met een Python-script kunt u deze taken automatiseren, zodat ze helemaal geen tijd in beslag nemen. Python kan bijvoorbeeld de inhoud van het bestandssysteem van uw computer lezen en bewerkingen uitvoeren, zoals het afdrukken van een overzicht van uw bestanden en mappen, het verplaatsen van mappen van de ene map naar de andere of het wijzigen van de naam van honderden bestanden. Normaal gesproken kunnen taken zoals deze veel tijd kosten als je ze handmatig zou uitvoeren. Gebruik in plaats daarvan een Python-script.

Laten we beginnen met een eenvoudig script dat door een mappenstructuur navigeert en de directorystructuur weergeeft.

  1. Open PowerShell met behulp van het startmenu (windows-pictogram linksonder).

  2. Maak een map voor uw project: mkdir python-scriptsen open die map: cd python-scripts.

  3. Maak een paar mappen die u met ons voorbeeldscript wilt gebruiken:

    mkdir food, food\fruits, food\fruits\apples, food\fruits\oranges, food\vegetables
    
  4. Maak een paar bestanden in die mappen die u met ons script wilt gebruiken:

    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. Maak een nieuw Python-bestand in de map python-scripts:

    mkdir src
    new-item src\list-directory-contents.py
    
  6. Open uw project in VS Code door het volgende in te voeren: code .

  7. Open het venster Verkenner van VS Code door Ctrl+Shift+E- in te voeren (of gebruik het menu om naar Weergave>Explorer) te navigeren en selecteer het list-directory-contents.py bestand dat u zojuist hebt gemaakt. Met de Microsoft Python-extensie wordt automatisch een Python-interpreter geladen. U kunt zien welke interpreter onderaan het VS Code-venster is geladen.

    Opmerking

    Python is een geïnterpreteerde taal, wat betekent dat deze fungeert als een virtuele machine, waarbij een fysieke computer wordt geëmuleren. Er zijn verschillende typen Python-interpreters die u kunt gebruiken: Python 2, Python 3, Anaconda, PyPy, enzovoort. Als u Python-code wilt uitvoeren en Python IntelliSense wilt ophalen, moet u VS Code vertellen welke interpreter moet worden gebruikt. We raden u aan de interpreter te gebruiken die VS Code standaard kiest (Python 3 in ons geval) tenzij u een specifieke reden hebt om iets anders te kiezen. Als u de Python-interpreter wilt wijzigen, selecteert u de interpreter die momenteel wordt weergegeven in de blauwe balk onder aan het VS Code-venster of opent u het opdrachtenpalet (Ctrl+Shift+P) en voert u de opdracht Python: Interpreter selecteren in. Hiermee wordt een lijst weergegeven met de Python-interpreters die u momenteel hebt geïnstalleerd. Meer informatie over het configureren van Python-omgevingen.

    Python-interpreter selecteren in VS Code

  8. Plak de volgende code in uw list-directory-contents.py bestand en selecteer opslaan:

    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. Open de geïntegreerde VS Code-terminal (Ctrl+', met behulp van het backtick-teken) en voer de src-map in waar u uw Python-script zojuist hebt opgeslagen:

    cd src
    
  10. Voer het script uit in PowerShell met:

    python3 .\list-directory-contents.py
    

    U zou uitvoer moeten zien die er als volgt uitziet:

    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. Gebruik Python om de uitvoer van de directory van het bestandssysteem naar zijn eigen tekstbestand te schrijven door deze opdracht rechtstreeks in uw PowerShell-terminal in te voeren: python3 list-directory-contents.py > food-directory.txt

Gefeliciteerd! U hebt zojuist een geautomatiseerd systeembeheerscript geschreven dat de map en bestanden leest die u hebt gemaakt en Python gebruikt om weer te geven en vervolgens de mapstructuur af te drukken naar het eigen tekstbestand.

Opmerking

Als u Python 3 niet kunt installeren vanuit de Microsoft Store, raadpleegt u dit probleem voor een voorbeeld van het afhandelen van het pad naar dit voorbeeldscript.

Voorbeeldscript voor het wijzigen van alle bestanden in een map

In dit voorbeeld worden de bestanden en mappen gebruikt die u zojuist hebt gemaakt, waarbij u de naam van elk van de bestanden wijzigt door de laatste wijzigingsdatum van het bestand toe te voegen aan het begin van de bestandsnaam.

  1. Maak in de src-map in de map python-scripts een nieuw Python-bestand voor uw script:

    new-item update-filenames.py
    
  2. Open het update-filenames.py bestand, plak de volgende code in het bestand en sla het op:

    Opmerking

    os.getmtime retourneert een tijdstempel in tikken, wat niet gemakkelijk leesbaar is. Deze moet eerst worden geconverteerd naar een standaardtekenreeks voor datum/tijd.

    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. Test uw update-filenames.py script door het uit te voeren: python3 update-filenames.py en voer vervolgens het list-directory-contents.py script opnieuw uit: python3 list-directory-contents.py

  4. U zou uitvoer moeten zien die er als volgt uitziet:

    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. Gebruik Python om de namen van de nieuwe bestandssysteemmappen af te drukken, waarbij ze worden voorafgegaan door het laatst gewijzigde tijdstempel en elk in hun eigen tekstbestand worden geplaatst. Voer hiervoor direct deze opdracht in uw PowerShell-terminal in: python3 list-directory-contents.py > food-directory-last-modified.txt

Hopelijk hebt u enkele leuke dingen geleerd over het gebruik van Python-scripts voor het automatiseren van basistaken voor systeembeheer. Er is natuurlijk een ton meer te weten, maar we hopen dat dit u op de juiste voet heeft gestart. We hebben een paar extra bronnen gedeeld om hieronder verder te leren.

Aanvullende bronnen