Найти - Пользователи
Полная версия: glob_fileinput(чтение один раз)
Начало » Python для новичков » glob_fileinput(чтение один раз)
1
avdoshkin
Пример:

def One():
duble = []
for l in open("log.log"):
duble.append(l)

for i in set(duble):
f = Two(i.rstrip())

def Two(*args):
for fname in glob.glob('test*.txt'):
for line in open(fname):
if args[0]==line:
retrun line
Вопрос как в функции Two() прочитать все файлы один раз и в прочитанном найти нужное, а такой алгоритм работы, для каждой строки читает все файлы каждый раз.
doza_and
Есть еще модуль http://docs.python.org/library/fileinput.html
avdoshkin
doza_and
Есть еще модуль http://docs.python.org/library/fileinput.html
можно и так, но результат тот же
return [line for line in fileinput.input(glob.glob('test*.txt')) if args[0]==line]
py.user.next
похоже, что тебе нужно загрузить все файлы в память
а потом с этим списком работать (передавать его)
usmix
Нужно кэшировать - получить список файлов по указанному пути один раз при первом вызове (в начале программы) и присвоить какой-нибудь глобальной переменной (либо в файл или в реестр)… Затем проверять атрибуты каталога, в котором находятся файлы, на предмет внесения изменений - по дате модификации. И при необходимости обновить свой кэш.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB