Я пытаюсь выполнить команду echo в скрипте Python.
Если я делаю это в терминале, это выглядит так:
echo -n -e '{"DATE": "Wednesday, May 04, 2016", "message": "ADIsss ", "INDEX_CLOSING_VALUE": "4428.61"}'"\0" | nc -w0 127.0.0.1 12201
Я пытался использовать:
import subprocess
cmd = '''echo -n -e '{ "version": "1.1", "host": "example.org", "short_message": "A short message", "level": 5, "_some_info": "foo" }'"\0" | nc -w0 127.0.0.1 12201'''
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
print proc.communicate()[0],
я получил ошибку:
Traceback (most recent call last):
File "tet.py", line 3, in <module>
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
raise child_exception
TypeError: execv() arg 2 must contain only strings
как я могу решить эту проблему с помощью подпроцесса в python