0
我想要一個標準的python解決方案,用於linux中的maxdepth
選項。我可以使用os.walk()
模擬find
命令,但我想限制代碼級別的深度。我不想在我的代碼中使用subprocess
或Popen
。如何模擬Linux的find命令的`maxdepth`選項到python
我想要一個標準的python解決方案,用於linux中的maxdepth
選項。我可以使用os.walk()
模擬find
命令,但我想限制代碼級別的深度。我不想在我的代碼中使用subprocess
或Popen
。如何模擬Linux的find命令的`maxdepth`選項到python
您可以遞歸遍歷所有路徑,直到達到一定的深度。這個解決方案不是特別有效,但它應該讓你開始(的Python 3.3或更新版本):
def find(path, maxdepth=-1, depth=0):
path = "%s/" % path if path[-1] != "/" else path
for f in os.listdir(path):
p = "%s%s" % (path, f)
yield p
try:
if (depth < maxdepth or maxdepth == -1) and os.path.isdir(p):
yield from find(p, maxdepth, depth + 1)
except OSError:
pass
用法:
find(path, maxdepth)
# maxdepth=-1 means infinite depth (default)
我從來沒有聽說過在Linux中'maxdepth'命令。你是指'find'命令的'-maxdepth'選項嗎? –
@MarceloCantos是的,它是。如果你想要,你可以編輯問題來反映這一點。 –
這是你的問題。 –