我正在使用
将stderr重定向到一个文件python foo.py 2> stderror.txt
一旦脚本完成,我想用{/ 1>移动{/ 1}}
stderror.txt
我的问题 - 如果我将stderr重定向到subprocess.call(['cp', 'stderror.txt', 'destination.txt'])
怎么办?有没有办法以编程方式从脚本中获取重定向的目标?
(注意:我知道这不是解决问题的方法。只是好奇。)
答案 0 :(得分:2)
一种可能的方法是阅读链接/proc/<pid>/fd/2
:
os.readlink("/proc/%d/fd/2" % os.getpid())
快捷方式是使用/proc/self/fd/2
。在未经重定向的情况下,您将在/dev
中获得一些特殊文件,通常是伪终端。对于其他操作系统,请参阅this related question。