【发布时间】:2018-04-12 07:37:58
【问题描述】:
我正在尝试获取ls -l | awk '{print $1}' 的输出中的行数,如下图所示为7。
total
drwxrwxr-x
drwxrwxr-x
-rw-rw-r--
-rw-rw-r--
-rw-rw-r--
-rw-r--r--
我尝试将此值存储在变量count 中,但是当我打印计数时,该值是 0 而不是 7。我不知道为什么。
import subprocess
count = subprocess.call('ls -l | awk '{print $1}' | wc -l', shell=True)
print count
输出:
7
0
【问题讨论】:
-
subprocess.call()不返回被调用进程的标准输出,而是返回码。在这种情况下,这是0(没有发生错误) -
无论如何存储实际答案而不是返回值?因为我使用管道和使用 subprocess.calls() 这样更容易
-
@Adonis 我正在尝试学习如何从 shell 中计算行数,而不仅仅是目录,因此
subprocess.call() -
@wildwilhelm 有没有办法将管道与
subprocess.check_output一起使用?
标签: python subprocess