我试图使用这个 StackOverflow 答案中给出的代码。但是,我不明白这条线是什么
level = root.replace(startpath, '').count(os.sep)
应该做的。
ValueError: zero length field name in format
另外,当我运行代码时,它在线上给出了一个错误
print('{}{}/'.format(indent, os.path.basename(root)))
我试图使用这个 StackOverflow 答案中给出的代码。但是,我不明白这条线是什么
level = root.replace(startpath, '').count(os.sep)
应该做的。
ValueError: zero length field name in format
另外,当我运行代码时,它在线上给出了一个错误
print('{}{}/'.format(indent, os.path.basename(root)))
level = root.replace(startpath, '').count(os.sep)
它正在计算打印对象(目录/文件)名称的缩进级别。它正在摆脱 startpath,因为它对于每个列出的文件都很常见,并且将所有内容都缩进 +10 个制表符看起来很糟糕 :) os.sep 在 Linux 上返回路径分隔符,如“/”。
关于该错误,请尝试:
print('{0}{1}/'.format(indent, os.path.basename(root)))
您有一些示例:http : //docs.python.org/2/library/string.html#format-examples 可能您的 Python 不是 2.7+
这里:
root.replace(startpath, '').count(os.sep)
这root
是walk的当前目录。
root.replace(startpath, '')
startpath
从中删除root
以获取相对于 startpath 的路径。
root.replace(startpath, '').count(os.sep)
计算此相对路径中os.sep
s 的数量,例如/
对于 Linux。此计数是当前目录相对于起始路径的深度。