Я заметил, что инструмент httpie
python дает разные результаты в следующих двух случаях:
$ http google.com
$ http google.com > out.txt
В файле out.txt
отсутствуют заголовки, которые присутствуют в первом случае.
Я заметил, что инструмент httpie
python дает разные результаты в следующих двух случаях:
$ http google.com
$ http google.com > out.txt
В файле out.txt
отсутствуют заголовки, которые присутствуют в первом случае.
На странице руководства http
вы можете найти следующее
Output options:
--print WHAT, -p WHAT
String specifying what the output should contain:
'H' request headers 'B' request body 'h' response headers 'b' response body
The default behaviour is 'hb' (i.e., the response headers and body is
printed), if standard output is not redirected. If the output is piped
to another program or to a file, then only the response body is printed by
default.
Это означает, что http
намеренно ведет себя иначе при перенаправлении вывода. Чтобы получить такое же поведение, как и для неперенаправленного вывода, вы можете использовать
`http --print hb google.com > out.txt`
(Но также обратите внимание, что симпатичная печать по-разному ведет себя с перенаправлением.)
Используйте sys.stdout.isatty
, чтобы определить, является ли stdout
терминалом («tty») или файлом, и распечатать разные выходные данные в зависимости от этого, например:
import sys
if sys.stdout.isatty():
print "Hello terminal!"
else:
print "Hello non-terminal!"