Форум сайта python.su
0
Файл состоит из отсчетов(чисел), надо сложить эти числа.
Офлайн
14
sum_ = 0 for line in open(r'd:\Python\file.txt', 'r'): sum_ += int(line.strip()) print sum_
Офлайн
25
odnochlenумничка
sum_ = 0
odnochlenлучше использовать with open(…) - оно закроет хендл файла по выходу
for line in open(r'd:\Python\file.txt', ‘r’):
Офлайн
или так
sum_ = reduce(lambda x, y: int(x) + int(y), open(path_to_file))
Офлайн
25
dimy44файлы все-таки лучше закрывать )
open(path_to_file)
Офлайн
В этом случае что закрывать? Ссылки на файловый объект нет.
Офлайн
25
эмм а что open() возвращает?
Офлайн
173
dimy44Не зря Guido подальше reduce запрятал, если уж нравится функциональный стиль, зачем усложнять?
sum_ = reduce(lambda x, y: int(x) + int(y), open(path_to_file))
with open("file.txt") as f: total = sum(map(int, f))
dimy44На CPython проблем не будет, а вот на PyPy могут возникнуть.
В этом случае что закрывать? Ссылки на файловый объект нет.
Отредактировано reclosedev (Ноя. 9, 2012 19:27:09)
Офлайн
25
reclosedevКонечно не будет - но это правило хорошего тона, открыл - закрой.
На CPython проблем не будет
Офлайн
reclosedevВ моем распоряжении сейчас только Python 2.2.2, там еще нет sum, пришлось так).
зачем
усложнять?
Офлайн