web2 logo

Artikel Links Notities

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

naar boven

term zoeken

Notitieruimte