存储subprocess.call()返回变量中的值

时间:2018-04-12 07:37:59

标签: python subprocess

我试图获得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

2 个答案:

答案 0 :(得分:3)

您也可以使用subprocess.check_ouput。它特别适用于检查输出,顾名思义。

count = subprocess.check_output("ls -l | awk '{print $1}' | wc -l", shell=True)

答案 1 :(得分:1)

Subprocess.call不会返回stdout,因此您需要使用Popen。 这是你可以做的。

// Check that all your push tokens appear to be valid Expo push tokens
if (!Expo.isExpoPushToken(pushToken)) {
  console.error(`Push token ${pushToken} is not a valid Expo push token`);
  continue;
}