Возможный дубликат:
Определить, является ли stdin терминалом или конвейером в C / C ++ / Qt?
Я хочу знать, идет ли вывод моей программы напрямую на терминал или перенаправляется в конвейер или файл.
Потому что, если он попадает в терминал, я хочу вывести escape-последовательности для создания цветного текста, но в файле или в конвейере это не приветствуется.
Я знаю, что это возможно, потому что «ls» это делает, кто-нибудь знает, как?
os
есть функция с тем же именем и функцией, не делает этот вопрос дубликатом этого. Здесь может уже быть вопрос Python здесь, на SO, вместо этого обманывайте его. - person Martijn Pieters   schedule 02.12.2012