ich einige Code haben die Linux 'df -h', die normale Befehlszeile Ausgabe sieht wie folgt zu analysieren:Python Regex re.search zur Liste
Filesystem Size Used Avail Use% Mounted on
udev 987M 0 987M 0% /dev
tmpfs 201M 9.2M 191M 5% /run
/dev/sda1 38G 11G 25G 30%/
tmpfs 1001M 416K 1000M 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1001M 0 1001M 0% /sys/fs/cgroup
tmpfs 201M 28K 201M 1% /run/user/132
tmpfs 201M 28K 201M 1% /run/user/0
Derzeit mein Code erreicht die gewünschte Ausgabe:
['/run', '/run/lock', '/run/user/132', '/run/user/0']
Aber die 'print ([x.split ("") [- 1] für x in der neuen Liste)' Zeile unten fühlt sich an wie ein Hack, ich kämpfe um das funktioniert als Regex mit ' r.search 'unten, kann jemand bitte einen besseren Weg raten, dies zu tun?
import subprocess
import re
cmd = 'df -h'
output = subprocess.check_output(cmd, shell=True).decode('utf8')
ln = output.split('\n')
r = re.compile('/run.*')
newlist = list(filter(r.search, ln))
print ([x.split(" ")[-1] for x in newlist])
bearbeiten * I als einige zufällige Ausgang ‚df -h‘ bin mit regex auf, so zu üben, während @romanPerekhrest die besten realen Welt Lösung für dieses Problem bietet ich für eine regex Lösung suchen.
Eigentlich glaube ich, Ihre Lösung besser tha ist n regexp (und fast sicher schneller). –