Python 使用cat in子流程打印文件内容
我正在使用python中的子流程调用,其中我必须使用Python 使用cat in子流程打印文件内容,python,shell,subprocess,Python,Shell,Subprocess,我正在使用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
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:没有这样的文件或目录
但是,当我仅使用子流程。检查输出([“echo'%s'%tmp\u file\u path],shell=True)
时,变量名打印正确
此外,我还尝试在命令行中执行此操作(
cat echo$tmp_file_name
),并且效果良好。有人能告诉我是怎么回事吗?您需要的命令是:
"cat '%s'"%tmp_file_path
不要用“回声”这个词
或者
synnet_output = subprocess.check_output(["cat", tmp_file_path], shell=False)
您需要的命令如下:
"cat '%s'"%tmp_file_path
不要用“回声”这个词
或者
synnet_output = subprocess.check_output(["cat", tmp_file_path], shell=False)
cat
正在尝试打开名为echo
的文件。为什么要使用echo?当我在命令行上尝试cat echo$tmp_file_name
时,我得到cat:echo:没有这样的文件或目录
-您当前目录中必须有一个名为echo的文件。cat
正在尝试打开一个名为echo
的文件。为什么要使用echo?当我在命令行上尝试cat echo$tmp_file_name
时,我得到cat:echo:没有这样的文件或目录
-您当前目录中必须有一个名为echo的文件。可能值得一提的是,shell=False
是有效的,因为echo
是一个内置的shell,因此不需要shell(/bin/echo
将使用其他方式)。可能值得一提的是,shell=False
是有效的,因为echo
是一个内置的shell,因此不需要shell(/bin/echo
将使用其他方式)。