Der er flere måder at køre en kommando på skallen på uden at skabe en ny underordnet proces. Her er et par almindelige tilgange:
- Brug `underproces`-modulet :'Underproces'-modulet i Python giver en række funktioner til at køre shell-kommandoer og interagere med deres output. En almindelig måde at køre en kommando på uden at oprette en ny proces er at bruge funktionen `subprocess.run()` med argumentet `shell=True`. For eksempel:
``` python
import underproces
Kør en kommando uden at oprette en ny proces
output =subprocess.run(["ls", "-l")], capture_output=True, shell=True).stdout
Udskriv output
print (output)
```
- Brug `os`-modulet :`os`-modulet i Python giver også flere funktioner til at interagere med operativsystemet, herunder muligheden for at køre shell-kommandoer. For at køre en kommando uden at oprette en ny proces, kan du bruge funktionen `os.system()`. For eksempel:
``` python
import os
Kør en kommando uden at oprette en ny proces
os.system("ls -l")
```
- Brug en shell-kontekstmanager :Python har også en konteksthåndtering kaldet `subprocess.Popen`, der giver dig mulighed for at køre kommandoer uden at oprette en ny proces. Kontekstmanageren sørger for at lukke processen, når du er færdig med den. For eksempel:
``` python
import underproces
Kør en kommando uden at oprette en ny proces
med subprocess.Popen(["ls", "-l"], stdout=subprocess.PIPE, universal_newlines=True) som proces:
# Læs outputtet fra kommandoen
output =process.stdout.read()
Udskriv output
print (output)
```
Hver af disse tilgange har sine egne fordele og ulemper, og det bedste valg til din specifikke brug vil afhænge af dine krav og præferencer.