os.walk 正在返回生成器对象。我究竟做错了什么?
os.walk is returning a generator object. What am I doing wrong?
根据文档,os.walk
returns 给定路径中包含根、目录和文件的元组。当我打电话给 os.walk
时,我得到以下信息:
>>> import os
>>> os.listdir('.')
['Makefile', 'Pipfile', 'setup.py', '.gitignore', 'README.rst', '.git', 'Pipfile.lock', '.idea', 'src']
>>> root, dir, files = os.walk('src')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 3)
>>> print (os.walk('src')) generator object walk at 0x10b4ca0f8>
我只是不明白我做错了什么。
如果需要,您可以将其转换为 list
:
list(os.walk('src'))
生成器的用途还有很多(可能最好只是 google "Python Generators" 并阅读它),但您仍然可以 for-loop
超越它们:
for dirpath, dirname, filename in os.walk('src'):
# Do stuff
根据文档,os.walk
returns 给定路径中包含根、目录和文件的元组。当我打电话给 os.walk
时,我得到以下信息:
>>> import os
>>> os.listdir('.')
['Makefile', 'Pipfile', 'setup.py', '.gitignore', 'README.rst', '.git', 'Pipfile.lock', '.idea', 'src']
>>> root, dir, files = os.walk('src')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 3)
>>> print (os.walk('src')) generator object walk at 0x10b4ca0f8>
我只是不明白我做错了什么。
如果需要,您可以将其转换为 list
:
list(os.walk('src'))
生成器的用途还有很多(可能最好只是 google "Python Generators" 并阅读它),但您仍然可以 for-loop
超越它们:
for dirpath, dirname, filename in os.walk('src'):
# Do stuff