У меня есть просто скрипт, который напечатать какое-то сообщение на консоль,странного поведения Ио перенаправления
#!/usr/bin/python
import sys
print >>sys.stdout, "1 stdout"
print >>sys.stderr, "2 stderr"
нормальной последовательность,
[[email protected]:codes]$ ./x.py
1 stdout
2 stderr
[[email protected]:codes]$ ./x.py 2>&1
1 stdout
2 stderr
неправильный порядок выпуска,
[[email protected]:codes]$ ./x.py &>x.txt
[[email protected]:codes]$ cat x.txt
2 stderr
1 stdout
[[email protected]:codes]$ ./x.py 2>&1 | tee x.log
2 stderr
1 stdout
Похоже, что добавление sys.stdout.flush()
может решить проблему, есть ли способ заставить последовательность сообщений (красным перенаправить вывод/ошибку в файл) без изменения сценария?
классный, я никогда не знаю, что есть такой вариант. благодаря! –