Python эквивалент Perl в то время как (<>) {…}?

Я пишу много маленьких сценариев, которые обрабатывают файлы построчно. В Perl я использую

while (<>) {
    do stuff;
}

Это удобно, потому что не имеет значения, откуда берется ввод (файл или стандартный ввод).

В Python я использую это

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

который не выглядит очень элегантным. Есть ли идиома Python, которая легко обрабатывает ввод file / stdin?

Ответы на вопрос(3)

Ваш ответ на вопрос