Skip to main content
 首页 » 编程设计

python之为什么我得到一个空字符串

2025年05月04日13TianFang

我想将 bash 命令的输出放在一个变量中,但我得到一个空字符串。

import subprocess 
 
out = subprocess.check_output("echo hello world", shell=True) 
print out + ' ok' 

输出是:

hello world 
 ok 

代替:

hello world 
hello world ok 

为什么会这样?

请您参考如下方法:

echo 的输出包括一个换行符。结果没有写入您的终端,输出由check_output()捕获,但您随后打印包括换行符在内的输出:

>>> import subprocess 
>>> out = subprocess.check_output("echo hello world", shell=True) 
>>> out 
'hello world\n' 

在打印时在两个单独的行中为您提供 'hello world' 和 'ok'。

之后您可以删除换行符;使用 str.strip()将从字符串的开头和结尾删除所有 空格,例如:

print out.strip() + ' ok' 

在某些 shell 上,echo 命令使用 -n 开关来抑制换行符:

echo -n hello world