为什么这段代码不一样。
samuel@corny ~ $ echo "pippo\npluto\nminnie\ntopolino" | @(lambda a,s=None: s.read())
pippo
pluto
minnie
topolino
第二条命令
samuel@corny ~ $ echo "pippo\npluto\nminnie\ntopolino" | @(lambda a,s=None: s.readlines())
pippo
pluto
对于逐行读取输入Pipe的python readlines 是否正确?
我的Xon.sh版本是0.7.8
答案 0 :(得分:0)
所以这有些微妙,但是callable aliases(lambda是其中的一种)具有一些可以返回的不同类型的对象。其中之一是(stdout, stderr, returncode)
的元组。
str.readlines()
方法返回一个列表,在这种情况下为['pippo\n', 'pluto\n', 'minnie\n', 'topolino\n']
。因此,在这里
stdout = "pippo\n"
stderr = "pluto\n"
returncode
从未打印过,但恰好在"minnie\n"
这里这可能不是预期的行为,也是第一个示例起作用的原因。