Python: io 重定向如何从输出内容中排除 return 值?

Python: io redirect how to exclude return value from output content?

例如,我可以使用 os.system 来执行 shell 命令,如下所示:

>>> import os
>>> os.system("ls")
1p.py                  Tmytest1               getpip.py              src
1p.pyc                 a.out                  helloworld             tags
0

似乎“0”是 "system" 函数调用的 return 值,python 将其打印出来。然后我尝试将系统命令输出重定向到这样的文件:

>>> import os
>>> import sys
>>> testlog=open('testlog.txt','w')
>>> os.dup2(testlog.fileno(),sys.stdout.fileno())
>>> print 'abc'
>>> print 'xyz'
>>> os.system("ls")

然后我cat "testlog.txt",我发现内容包含最后一行“0”。这不是我想要的,如何排除 return 值被重定向到输出文件?

既然是返回值,为什么不保存呢?

_ = os.system('ls')

在此之后,_ 的值将是 0,而 0 将不会包含在输出中。