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

Reply via email to