Я пишу много маленьких скриптов, которые обрабатывают файлы по очереди. В Perl, я используюPython эквивалент Perl while (<>) {...}?
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, которая легко обрабатывает входной файл/stdin?
С точки зрения «читаемого кода», я бы предпочел ваш код Python, так как большинство людей, не работающих с Perl, не будут знать, что означает код Perl. – schnaader
Вы можете хотя бы опустить .readlines() – Jiri
Дубликат: http://stackoverflow.com/questions/715277/how-do-i-iterate-over-all-lines-of-files-passed-on-the-commandline -in-python –