Форум сайта python.su
0
есть команда sdparm –quiet –page=sn /dev/sda
как мне присвоить значение ее выполнение переменной.
Вобщем нужну при загрузке debian проверить Sn диска, и если он не совпадает то произвести выключение ОС.
Офлайн
8
Модуль sh удобен для этого http://amoffat.github.io/sh/
А вообще subprocess https://docs.python.org/3/library/subprocess.html
Офлайн
0
Уменя на машинке стоит 2.6 python
и темболее при использовании subprocess. call() получают коды возврата…. а мен нужно значение которые выдаст команда ….. когда она выполняеться то получаю серийный номер диска. Он мне то и нужен.
Отредактировано silent_lab (Авг. 4, 2014 10:14:34)
Офлайн
857
https://docs.python.org/2.6/library/subprocess.html
py.user.next
а мен нужно значение которые выдаст команда
>>> import subprocess as subp >>> >>> p = subp.Popen('echo x | cat -n', shell=True, stdout=subp.PIPE) >>> out, err = p.communicate() >>> out, err, p.returncode (' 1\tx\n', None, 0) >>>
Отредактировано py.user.next (Авг. 4, 2014 10:22:26)
Офлайн
0
Все разобрался почти, может кому пригодится:
import subprocess infoHDD [] proc = subprocess.Popen('sdparm --quiet --page=sn /dev/sda', shell=True, stdout=subprocess.PIPE) while True: line = proc.stdout.readline() if not line: break infoHDD.append(line) print (infoHDD[1])
Офлайн
2
возможно через срез
Офлайн
221
silent_lab
import subprocess proc = subprocess.Popen('sdparm --quiet --page=sn /dev/sda', shell=True, stdout=subprocess.PIPE) proc.wait() # ждем завершения работы дочерней программы infoHDD=proc.stdout.readlines()[1] print (infoHDD)
Офлайн