Извлеките свою папку еще раз в папку с более коротким именем. И используйте 7-zip для извлечения папки, так как могут возникнуть некоторые проблемы, связанные с извлечением.
Нет того, потому что Вы не можете сделать этого в общем случае - что, если у Вас есть ленивый бесконечный генератор? Например:
def fib():
a, b = 0, 1
while True:
a, b = b, a + b
yield a
Это никогда не завершается, но генерирует Числа Фибоначчи. Можно получить столько Чисел Фибоначчи, сколько Вы хотите путем вызова next()
.
, Если действительно необходимо знать количество объектов, существует, тогда Вы не можете выполнить итерации через них линейно одного времени так или иначе, поэтому просто использовать различную структуру данных, такую как обычный список.
Можно использовать, перечисляют (), чтобы циклично выполниться через сгенерированный поток данных, затем возвратить последнее число - количество объектов.
я пытался использовать itertools.count () с itertools.izip (), но никакая удача. Это - лучший/самый короткий ответ, который я придумал:
#!/usr/bin/python
import itertools
def func():
for i in 'yummy beer':
yield i
def icount(ifunc):
size = -1 # for the case of an empty iterator
for size, _ in enumerate(ifunc()):
pass
return size + 1
print list(func())
print 'icount', icount(func)
# ['y', 'u', 'm', 'm', 'y', ' ', 'b', 'e', 'e', 'r']
# icount 10
решением Kamil Kisiel является путь лучше:
def count_iterable(i):
return sum(1 for e in i)