2009-05-13 1 views
49

मैं अपनी स्क्रिप्ट को एक इंटरैक्टिव शैल सत्र में अलग-अलग कार्य करना चाहता हूं और रीडायरेक्ट किए गए स्टडआउट के साथ चलने पर (उदाहरण के लिए जब किसी अन्य कमांड पर पाइप किया जाता है)।कैसे पहचानें कि एक स्क्रिप्ट एक टीटी पर चल रही है या नहीं?

मैं कैसे पहचान इन दोनों में से जो एक अजगर स्क्रिप्ट में होता है?

मौजूदा कार्यक्रम में इस तरह के व्यवहार का उदाहरण: ग्रेप --color = ऑटो प्रकाश डाला से मेल खाता है जब इंटरैक्टिव खोल में चल रहा है, लेकिन जब कुछ और करने के लिए पहुंचाया नहीं है।

उत्तर

59
import os, sys 
os.isatty(sys.stdout.fileno()) 

या

sys.stdout.isatty()