我注意到httpie
python工具在以下两个caes中给出了不同的结果:
$ http google.com
$ http google.com > out.txt
文件out.txt
错过了第一种情况中出现的标题。
答案 0 :(得分:2)
使用sys.stdout.isatty
判断stdout
是终端(“tty”)还是文件,并根据具体情况打印不同的输出,例如:
import sys
if sys.stdout.isatty():
print "Hello terminal!"
else:
print "Hello non-terminal!"
答案 1 :(得分:1)
在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`
(但另请注意,漂亮打印在重定向方面表现不同。)