Форум сайта python.su
проблемма: надо выполнить команду и отправить вывод клиенту приконнекченному к серверу, делаю так
x = os.system("ls")
sock.send(x)
TypeError: send() argument 1 must be string or read-only buffer, not int
f = file("/tmp/cmd", "w")
f.write(str("ls"))
f.close()
os.popen("bash /tmp/cmd > /tmp/out")
f = file("/tmp/out", "r")
outbuff = f.read()
sock.send(outbuff)
Офлайн
не знаю даже что и сказать…
Офлайн
функция os.system() возвращает “exit status of the process ” (см. документацию).
А тебе надо получить вывод (stdout).
Это можно сделать с помощью модуля subprocess.
Например так:
import subprocess
...
x = subprocess.Popen('ls', shell = True, stdout = subprocess.PIPE).communicate()[0]
sock.send(x)
Отредактировано (Окт. 3, 2008 03:30:20)
Офлайн
точно, спасибо.
Офлайн