Tej*_*jas 3 command-line directory find
问题:我已经给出了目录结构
??? kat11
? ??? kat21
? ? ??? Dokument\ bez\ nazwy
? ??? kat22
? ??? kat31
? ? ??? Dokument\ bez\ nazwy
? ??? kat32
? ??? Dokument\ bez\ nazwy
??? kat12
? ??? kat21
? ??? Dokument\ bez\ nazwy
??? kat13
? ??? Dokument\ bez\ nazwy
??? kat14
??? Kat21
??? Kat32
??? Dokument\ bez\ nazwy
Run Code Online (Sandbox Code Playgroud)
我只想列出所有具有完整路径的子文件夹。
例如
1. /kat14/kat21/kat32/Dokument\ bez\ nazwy
2. /kat11/kat22/kat31/Dokument\ bez\ nazwy
3. /kat11/kat22/kat32/Dokument\ bez\ nazwy
4. /kat12/kat21/Dokument\ bez\ nazwy
Run Code Online (Sandbox Code Playgroud)
在一个小的python脚本中:
#!/usr/bin/env python3
import os
import sys
src = sys.argv[1]
for root, dirs, files in os.walk(src):
for dr in dirs:
directory = root+"/"+dr
if len([sub for sub in os.listdir(directory) \
if os.path.isdir(directory+"/"+sub)]) == 0:
print(directory)
Run Code Online (Sandbox Code Playgroud)
count_empty.py
使用目标目录作为参数运行它:
python3 /path/to/count_empty.py '<source_directory>'
Run Code Online (Sandbox Code Playgroud)python
'sos.walk()
遍历目录和子目录线
if len([sub for sub in os.listdir(directory) if os.path.isdir(directory+"/"+sub)]) == 0:
Run Code Online (Sandbox Code Playgroud)
随后计算每个子目录的数量。如果为零(无子目录),则打印目录及其路径。
在我桌面上的一个简单包文件夹上进行测试:
python3 /path/to/count_empty.py '<source_directory>'
Run Code Online (Sandbox Code Playgroud)