使用os模块的walk生成器,编写一个函数list_files_walk,该函数返回所有part.txt文件的路径的列表。该函数不使用任何输入参数。
def list_files_walk():
for dirpath, dirnames, filenames in os.walk("CarItems"):
if 'parts.txt' in dirpath:
list_files.append(filenames)
print(list_files)
return list_files
输出(list_files)应该看起来与此类似:
CarItems/Chevrolet/Chevelle/2011/parts.txt
CarItems/Chevrolet/Chevelle/1982/parts.txt
如何产生此输出?
你很近。由于某种原因,您正在parts.txt
中搜索dirpath
时,应在filenames
中进行搜索:
def list_files_walk():
results = []
for dirpath, dirnames, filenames in os.walk("CarItems"):
for f in filenames:
if f.endswith('parts.txt'):
results.append(os.path.join(dirpath, f))
return results
我使用endswith
,因为它比问“ parts.txt”是否在文件名in
处更准确,但在大多数情况下也可以:
def list_files_walk():
results = []
for dirpath, dirnames, filenames in os.walk("CarItems"):
for f in filenames:
if 'parts.txt' in f:
results.append(os.path.join(dirpath, f))
return results