我注意到卷曲可以判断我是否重定向其输出(在这种情况下,它会显示进度条).
有没有合理的方法在Python脚本中执行此操作?所以:
$ python my_script.py
未重定向
$ python my_script.py> output.txt
重定向!
nos*_*klo 34
import sys
if sys.stdout.isatty():
print "Not redirected"
else:
sys.stderr.write("Redirected!\n")
Run Code Online (Sandbox Code Playgroud)
Dig*_*oss 10
其实,你要在这里做的是找出是否stdin和stdout是一样的.
$ cat test.py
import os
print os.fstat(0) == os.fstat(1)
$ python test.py
True
$ python test.py > f
$ cat f
False
$
Run Code Online (Sandbox Code Playgroud)
更长但更传统的版本是相同的文件测试只是比较st_ino和st_dev.通常,在Windows上,这些都是用一些东西的散列来伪造的,这样这个精确的设计模式就可以工作了.
| 归档时间: |
|
| 查看次数: |
2643 次 |
| 最近记录: |