Глобус типа и расширение имени пути оболочкой будет головной болью.
В моей среде работает следующий фрагмент:
import subprocess
subprocess.run('echo /sys/class/net/*/wireless', shell=True)
Но следующее возвращает пустую строку:
import subprocess
subprocess.run(['echo', '/sys/class/net/*/wireless'], shell=True)
Тогда, пожалуйста, попробуйте следующее в качестве отправной точки:
import subprocess
subprocess.run('echo /sys/class/net/*/wireless | awk -F"/" "{ print \$5 }"', shell=True)
, который принесет желаемый результат.
[Обновить] Если вы хотите назначить переменную для выводавыше, пожалуйста, попробуйте:
import subprocess
proc = subprocess.run('echo /sys/class/net/*/wireless | awk -F"/" "{ print \$5 }"', shell=True, stdout = subprocess.PIPE)
wlan = proc.stdout.decode("utf8").rstrip("\n")
print(wlan)
Кстати, если вы не придерживаетесь модуля subprocess
, почему бы вам не пойти по-родному как:
import glob
list = glob.glob('/sys/class/net/*/wireless')
for elm in list:
print(elm.split('/')[4])
Надеждаэто помогает.