```python import os, time def walkThroughTree(dir_name:str, log_file, prefix:str=""): try: cur_dir_list = os.listdir(dir_name) except: print("this is not a directory") return if cur_dir_list == []: return dir_list = [] file_list = [] for file_or_dir in cur_dir_list: try: os.listdir(dir_name + os.sep + file_or_dir) dir_list.append(file_or_dir) except: file_list.append(file_or_dir) file_list = sorted(list(zip(file_list, [False] * len(file_list)))) dir_list = sorted(list(zip(dir_list, [True] * len(dir_list)))) total_list = file_list + dir_list # print file first :) for name, is_dir in total_list[:-1]: print(prefix + "├── " + name) log_file.write(prefix + "├── " + name + "\n") if is_dir: walkThroughTree(dir_name + os.sep + name, log_file, prefix + "| ") last_name, last_is_dir = total_list[-1] print(prefix + "└── " + last_name) log_file.write(prefix + "└── " + last_name + "\n") if last_is_dir: walkThroughTree(dir_name + os.sep + last_name, log_file, prefix + " ") if __name__ == "__main__": target_path = input("please enter the path of target directory\n") cur_time = time.strftime("%Y%m%H%M%S", time.localtime(time.time())) log_file = open(f"log_{cur_time}.txt", 'a') walkThroughTree(target_path, log_file) log_file.close() ```