Er zijn verschillende manieren om een opdracht op de shell uit te voeren zonder een nieuw onderliggend proces te genereren. Hier zijn een paar veel voorkomende benaderingen:
- Gebruik de module `subproces` :De `subprocess`-module in Python biedt een verscheidenheid aan functies voor het uitvoeren van shell-opdrachten en de interactie met hun uitvoer. Een gebruikelijke manier om een commando uit te voeren zonder een nieuw proces te creëren is door de functie `subprocess.run()` te gebruiken met het argument `shell=True`. Bijvoorbeeld:
```python
subproces importeren
Voer een opdracht uit zonder een nieuw proces te maken
output =subprocess.run(["ls", "-l"], capture_output=True, shell=True).stdout
Druk de uitvoer af
afdrukken(uitvoer)
```
- Gebruik de `os`-module :De `os`-module in Python biedt ook verschillende functies voor interactie met het besturingssysteem, inclusief de mogelijkheid om shell-opdrachten uit te voeren. Om een commando uit te voeren zonder een nieuw proces te creëren, kun je de functie `os.system()` gebruiken. Bijvoorbeeld:
```python
importeer os
Voer een opdracht uit zonder een nieuw proces te maken
os.system("ls -l")
```
- Gebruik een shell-contextmanager :Python heeft ook een contextmanager genaamd `subprocess.Popen` waarmee u opdrachten kunt uitvoeren zonder een nieuw proces te maken. De contextmanager zorgt ervoor dat het proces wordt afgesloten als u klaar bent. Bijvoorbeeld:
```python
subproces importeren
Voer een opdracht uit zonder een nieuw proces te maken
met subprocess.Popen(["ls", "-l"], stdout=subprocess.PIPE, universal_newlines=True) als proces:
# Lees de uitvoer van de opdracht
uitvoer =proces.stdout.read()
Druk de uitvoer af
afdrukken(uitvoer)
```
Elk van deze benaderingen heeft zijn eigen voor- en nadelen, en de beste keuze voor uw specifieke gebruikssituatie hangt af van uw vereisten en voorkeuren. |