我在python中使用子进程调用,我必须使用cat
打印文件内容。文件名是我在python代码本身生成的变量。这是我的代码:
pid = str(os.getpid())
tmp_file_path = "/tmp/" + pid + "/data_to_synnet"
synnet_output = subprocess.check_output(["cat echo '%s'"%tmp_file_path], shell=True)
以上代码引发错误cat: echo: No such file or directory
。
但是,当我仅使用subprocess.check_output(["echo '%s'"%tmp_file_path], shell=True)
时,会正确打印变量名称。
另外,我尝试在命令行中执行此操作(cat echo $tmp_file_name
)并且它可以正常工作。有人可以告诉我有什么问题吗?
答案 0 :(得分:2)
您想要的命令是:
"cat '%s'"%tmp_file_path
摆脱“回声”一词。
可替换地,
synnet_output = subprocess.check_output(["cat", tmp_file_path], shell=False)