我试图列出所有以“.py”结尾的文件。我希望它的显示方式是dirname
+filename
。我用os.path.join()
来做这个。当我把/Users
作为起点时,我得到了一个错误但是当我指定大多数.py文件类似于os.walk(r'/Users/name/Pythonfiles')
的目录时,我没有得到错误。
这是我想出的代码:
for cdir, dir, files in os.walk(r'/Users'):
for file in files:
if file.endswith('.py'):
filename = os.path.join(cdir, file)
print filename
我得到的错误:
Traceback (most recent call last):
File "/Users/name/PythonTutorials/finding_largest_file.py", line 9, in <module>
filename = os.path.join(dir, file)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/posixpath.py", line 77, in join
elif path == '' or path.endswith('/'):
AttributeError: 'list' object has no attribute 'ends with'
如果可能的话,请提出一个更好的方法来完成这项任务
在
os.path.join()
调用中使用了错误的值。正在迭代的当前目录是os.walk()
给出的第一个值,您将该值分配给了cdir
您正在使用由
os.walk()
返回的second值,这是一个目录名列表使用:
我把
dir
改名为directories
;一个更清晰的名称,并且不屏蔽内置的dir()
函数相关问题 更多 >
编程相关推荐