【发布时间】:2020-04-11 18:58:57
【问题描述】:
我是编程新手,并且已经学习了大约一个月的 Python 作为我进入信息安全领域的第一语言。在课程中,我被指示构建一个文件结构,以递归方式列出文件,如下所示:
Folder ----example.py ----NewDirectory --------folder ------------root.txt --------samplefile.txt ----NewDirectory - Shortcut.lnk ----spse2.txt
讲师似乎暗示我不需要使用递归函数,但他确实提到了 fnmatch 和 glob。 在阅读文档并查看论坛后,这是我想出的(请承受我慷慨的调试代码):
import os
import fnmatch
def tree(path = ""):
print(path)
level = 1
separator = "----" * level
for file in os.listdir("." + path):
print("Scanning files in " + path)
print(os.listdir("." + path))
if os.path.isfile(file):
print("file found! It's called " + file)
print(separator + file)
elif os.path.isdir(file):
print("dir found! It's called " + file)
print(separator + file)
level += 1
print("Entering directory...")
tree("/" + file)
else:
print(file + " is corrupted or of an unknown format.")
tree()
输出是:
Scanning files in ['example.py', 'NewDirectory', 'NewDirectory - Shortcut.lnk', 'spse2.txt'] file found! It's called example.py ----example.py Scanning files in ['example.py', 'NewDirectory', 'NewDirectory - Shortcut.lnk', 'spse2.txt'] dir found! It's called NewDirectory ----NewDirectory Entering directory... /NewDirectory Scanning files in /NewDirectory ['folder', 'samplefile.txt'] folder is corrupted or of an unknown format. Scanning files in /NewDirectory ['folder', 'samplefile.txt'] samplefile.txt is corrupted or of an unknown format. Scanning files in ['example.py', 'NewDirectory', 'NewDirectory - Shortcut.lnk', 'spse2.txt'] file found! It's called NewDirectory - Shortcut.lnk ----NewDirectory - Shortcut.lnk Scanning files in ['example.py', 'NewDirectory', 'NewDirectory - Shortcut.lnk', 'spse2.txt'] file found! It's called spse2.txt ----spse2.txt
似乎无法进入文件夹“文件夹”。我应该在这里做什么?
谢谢。
【问题讨论】:
-
如果您将
def tree(path = "")替换为def tree(path)并通过tree("Folder")运行(代码底部),它可以工作吗? -
“文件夹”实际上被称为“Python Pentesting”,所以我对其进行了更改并实施了您的更改,但是当“。”时,我确实在第 8 行得到了错误。连接到路径。另外,我尝试将完整路径放在
tree()中,例如tree("C:\Users\Adrian\Desktop\Infosec\Notes\Python Pentesting"),但这给了我一个语法错误。
标签: python-3.x recursion directory