web2 logo

Een Shell commando uitvoeren met Python

Je kunt commando's uitvoeren via de subprocess module.

Gebruikswijze:
import subprocess
subprocess.call("command1")
subprocess.call(["command1", "arg1", "arg2"])
Bijvoorbeeld het date commando:
import subprocess
subprocess.call("date")
Mogelijk resultaat:
vr 23 dec 2016 18:52:22 CET

Een voorbeeld met argumenten:
import subprocess
subprocess.call(["ls", "-l", "/etc/hosts"])
Mogelijk resultaat:
-rw-r--r-- 1 root root 6463 apr 23 2016 /etc/hosts

Je kunt de uitvoer van een commando ook in een variabele opslaan:
import subprocess
p = subprocess.Popen("date", stdout=subprocess.PIPE, shell=True)
(uitvoer, err) = p.communicate()
print ("Vandaag is het", uitvoer.decode('utf-8'))
Mogelijk resultaat:
Vandaag is het vr 23 dec 2016 19:16:06 CET

Een voorbeeld met het ping commando:
import subprocess
cmdping = "ping -c4 www.web2.nl"
p = subprocess.Popen(cmdping, shell=True, stderr=subprocess.PIPE)
while True:
    out = p.stderr.read(1).decode('utf-8')
    if out == '' and p.poll() != None:
        break
    if out != '':
        print(out)
Mogelijk resultaat:
PING www.web2.nl (37.16.0.124) 56(84) bytes of data.
64 bytes from 37.16.0.124: icmp_seq=1 ttl=56 time=21.0 ms
64 bytes from 37.16.0.124: icmp_seq=2 ttl=56 time=20.8 ms
64 bytes from 37.16.0.124: icmp_seq=3 ttl=56 time=29.9 ms
64 bytes from 37.16.0.124: icmp_seq=4 ttl=56 time=35.6 ms

--- www.web2.nl ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 20.824/26.860/35.659/6.264 ms

Toegevoegd door: Kees de Keijzer
Twitter: @kdkq

~ python ~

~ Onderwerpen ~

Dit is een website zonder pop-ups

~ Links ~

Design & Development by Cyberwebdesign.nl for web2.nl © 2020.