Python equivalente ao tempo do Perl (<>) {…}?

Eu escrevo muitos scripts pequenos que processam arquivos linha por linha. No Perl, eu uso

while (<>) {
    do stuff;
}

Isso é útil porque não importa de onde vem a entrada (um arquivo ou stdin

No Python eu uso esse

if len(sys.argv) == 2: # there's a command line argument
    sys.stdin = file(sys.argv[1])
for line in sys.stdin.readlines():
    do stuff

o que não parece muito elegante. Existe um idioma Python que lida facilmente com a entrada file / stdin?

questionAnswers(3)

yourAnswerToTheQuestion