Как решить подпроцесс, который содержит '|' - PullRequest
0 голосов
/ 22 ноября 2018

Этот код не работает.Я написал так.

str = "curl -s 'URL_ADDRESS' | tail -1".split()
p = subprocess.Popen(str,stdout=subprocess.PIPE).stdout
data = p.read()
p.close()
print(data)

Но результат b''.В чем проблема с этим?

1 Ответ

0 голосов
/ 22 ноября 2018

Если вы используете подпроцесс, используйте вместо '|'вот так.

Это решит проблему.

str = "curl -s 'URL_ADDRESS'".split()

tail = "tail -1".split()

temp = subprocess.Popen(str, stdout=subprocess.PIPE).stdout

temp1 = subprocess.Popen(tail, stdin=temp, stdout=subprocess.PIPE).stdout

temp.close()

data = temp1.read()

temp1.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...