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
将不会包含在输出中。
例如,我可以使用 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
将不会包含在输出中。