在Python脚本中执行echo命令

在Python脚本中执行echo命令,python,subprocess,echo,Python,Subprocess,Echo,我试图在python脚本中执行echo命令 如果我在终端中执行此操作,它看起来如下所示: 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",

我试图在python脚本中执行echo命令

如果我在终端中执行此操作,它看起来如下所示:

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

回溯(最近一次呼叫最后一次):
文件“tet.py”,第3行,在
proc=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)
文件“/usr/lib/python2.7/subprocess.py”,第711行,在__
错误读取,错误写入)
文件“/usr/lib/python2.7/subprocess.py”,第1343行,在执行子进程中
引发子对象异常
TypeError:execv()arg 2只能包含字符串
如何使用python中的子进程解决此问题

尝试使用os模块

import os
os.system("echo...........")
如果你想在这里使用变量,你需要在这里加上引号

比如说

import os
string="This is test"
os.system("echo "+string+">> ~/Desktop/file.txt")
此代码将在桌面位置的文件.txt中附加字符串“This is test”

尝试使用操作系统模块

import os
os.system("echo...........")
如果你想在这里使用变量,你需要在这里加上引号

比如说

import os
string="This is test"
os.system("echo "+string+">> ~/Desktop/file.txt")

此代码会将字符串“This is test”附加到桌面位置的file.txt中

您是否尝试将
cmd
设置为列表而不是字符串?显示命令为列表的示例。您是否尝试将
cmd
设置为列表而不是字符串?显示的命令示例为列表。