I'm struggling with the result of the Path.glob() method of the Pathlib module in Python 3.6.
from pathlib import Path
dir = Path.cwd()
files = dir.glob('*.txt')
print(list(files))
>> [WindowsPath('C:/whatever/file1.txt'), WindowsPath('C:/whatever/file2.txt')]
for file in files:
print(file)
print('Check.')
>>
Evidently, glob found files, but the for-loop is not executed. How can I loop over the results of a pathlib-glob-search?
>>> from pathlib import Path
>>>
>>> dir = Path.cwd()
>>>
>>> files = dir.glob('*.txt')
>>>
>>> type(files)
<class 'generator'>
Here, files
is a generator
, which can be read only once and then get exhausted. So, when you will try to read it second time, you won't have it.
>>> for i in files:
... print(i)
...
/home/ahsanul/test/hello1.txt
/home/ahsanul/test/hello2.txt
/home/ahsanul/test/hello3.txt
/home/ahsanul/test/b.txt
>>> # let's loop though for the 2nd time
...
>>> for i in files:
... print(i)
...
>>>