2009/1/14 Damon Timm <damont...@gmail.com>: > This works when I do have something coming via stdin ... but if I run > the script without piping something first ... it just sits there (I > assume, waiting for some stdin) ... > > How do I tell it: if there is no stdin, just move on?
This might work: import select, sys def isData(): return select.select([sys.stdin], [], [], 0) == ([sys.stdin], [], []) if isData(): print 'You typed:', sys.stdin.read() else: print 'Nothing to see here.' I say "might" because it is OS-dependent, but I guess you are using unix/linux. Source: http://www.darkcoding.net/software/non-blocking-console-io-is-not-possible/ I found that by searching for "python stdin non-blocking". This is because "blocking" is jargon for "waiting until something happens". In this case, stdin.read() is blocking until it sees some data with an EOF. HTH! -- John. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor