这是我第一次使用Python,我在以下代码段中找到中间目录路径时遇到了一些麻烦:
目前,当将目录参数传递给'stroll'时,该函数似乎进入thePath,观察每个子目录类型,并且如果是类型目录则下降。代码不是我的,似乎嵌套的for循环遍历常规文件列表,因此循环不会知道每个元素所属的目录。
当前输出
../Sample_Cases_Asg2/output.txt
../Sample_Cases_Asg2/file2
../Sample_Cases_Asg2/file1
../Sample_Cases_Asg2/output.txt
../Sample_Cases_Asg2/file2
../Sample_Cases_Asg2/file1
../Sample_Cases_Asg2/output.txt
../Sample_Cases_Asg2/file2
../Sample_Cases_Asg2/file1
../Sample_Cases_Asg2/output.txt
../Sample_Cases_Asg2/file2
../Sample_Cases_Asg2/file1
所需的输出
../Sample_Cases_Asg2/sample1/output.txt
../Sample_Cases_Asg2/sample1/file2
../Sample_Cases_Asg2/sample1/file1
../Sample_Cases_Asg2/sample2/output.txt
../Sample_Cases_Asg2/sample2/file2
../Sample_Cases_Asg2/sample2/file1
../Sample_Cases_Asg2/sample3output.txt
../Sample_Cases_Asg2/sample3/file2
../Sample_Cases_Asg2/sample3/file1
../Sample_Cases_Asg2/sample3/output.txt
../Sample_Cases_Asg2/sample3/file2
../Sample_Cases_Asg2/sample3/file1
实施
def stroll(thePath):
deeper = []
for root, dirs, files in os.walk(thePath):
for file in files:
print (os.path.join(thePath, file))
此外,我是社区的新手,因此非常感谢任何关于如何改进我的问题的简明输入。
答案 0 :(得分:1)
如果您将First
放入shell中,您会看到:
对于以顶部为根的目录树中的每个目录(包括顶部 本身,但不包括'。'和'..'),产生一个3元组
Vector2 cheapestCellPosition = openCells .OrderBy(cell => GetCostToTarget(cell, targetPosition) + GetCell(cell).Cost.GetValueOrDefault()) .First();
dirpath是一个字符串,即目录的路径。 dirnames是一个列表 dirpath中子目录的名称(不包括“。”和“..”)。 filenames是非目录文件名称的列表 dirpath。 请注意,列表中的名称只是名称,没有路径 组件。强>
所以你需要:
help(os.walk)
这很烦人。