2014-02-04 6 views
1

Я начал заниматься конкурсами/задачами программирования, и часто вопросы включают чтение со стандартного ввода. Я делалКаков самый Pythonic способ обработки стандартного ввода?

import fileinput 

inputLines = [] 

for line in fileinput.input(): 
    inputLines.append(line) 

я тогда могу делать все расчеты, что нужно сделать с inputLines. Есть ли более питоновский (то есть лучший) способ сделать это?

ответ

2

Если вы просто хотите прочитать от stdin, а не от любых файлов, названных в командной строке, то вы не должны использовать fileinput.

Если вы хотите получить список, содержащий строки из stdin, то:

import sys 
inputLines = list(sys.stdin) 
1
import sys 
for line in sys.stdin: 
    print "The line was", line 
+1

Какие преимущества итерация sys.stdin сравнили с итерация FileInput()? – djlovesupr3me

+0

@ djlovesupr3me, как говорится в названии, используется для чтения файла. Если вы не укажете имя файла, оно будет читать stdin. – thavan

1

Я думаю fileinput это гибкий способ сделать это в Python, учитывая, что они сделали модуль только, чтобы сделать это.

Если вы знаете больше о том, какой тип ввода вы будете читать, могут быть библиотеки, которые лучше подходят для ваших нужд. Например, я делаю много числовых работ, поэтому pandas отлично подходит для меня, потому что у него есть read_csv. Взгляните на docs (и попробуйте рассказать нам больше о конкретных потребностях чтения, если вы можете сузить его).

Смежные вопросы