# -*- coding: utf-8 -*-
import sys
from pathlib import Path class DirectionTree(object):
"""生成目录树
@ pathname: 目标目录
@ filename: 要保存成文件的名称
""" def __init__(self, pathname='.', filename='tree.txt'):
super(DirectionTree, self).__init__()
self.pathname = Path(pathname)
self.filename = filename
self.tree = '' def set_path(self, pathname):
self.pathname = Path(pathname) def set_filename(self, filename):
self.filename = filename def generate_tree(self, n=0):
if self.pathname.is_file():
self.tree += ' |' * n + '-' * 4 + self.pathname.name + '\n'
elif self.pathname.is_dir():
self.tree += ' |' * n + '-' * 4 + \
str(self.pathname.relative_to(self.pathname.parent)) + '\\' + '\n' for cp in self.pathname.iterdir():
self.pathname = Path(cp)
self.generate_tree(n + 1) def save_file(self):
with open(self.filename, 'w', encoding='utf-8') as f:
f.write(self.tree) if __name__ == '__main__':
dirtree = DirectionTree()
# 命令参数个数为1,生成当前目录的目录树
if len(sys.argv) == 1:
dirtree.set_path(Path.cwd())
dirtree.generate_tree()
print(dirtree.tree)
# 命令参数个数为2并且目录存在存在
elif len(sys.argv) == 2 and Path(sys.argv[1]).exists():
dirtree.set_path(sys.argv[1])
dirtree.generate_tree()
print(dirtree.tree)
# 命令参数个数为3并且目录存在存在
elif len(sys.argv) == 3 and Path(sys.argv[1]).exists():
dirtree.set_path(sys.argv[1])
dirtree.generate_tree()
dirtree.set_filename(sys.argv[2])
dirtree.save_file()
else: # 参数个数太多,无法解析
print('命令行参数太多,请检查!')

python生成指定文件夹目录树的更多相关文章

  1. (Python)导出指定文件夹中as文件的完全限定类名

    AS3程序在编译的过程中,有一个特点是这样的,不管是项目中的类,还是标准库或者第三方库的类,编译的时候只会把用到的那些类文件编译进去,也就是说,某一些类,只要没有被主程序引用到,那这个文件是不会被编译 ...

  2. Python获取指定文件夹下的文件名

    本文采用os.walk()和os.listdir()两种方法,获取指定文件夹下的文件名. 一.os.walk() 模块os中的walk()函数可以遍历文件夹下所有的文件. os.walk(top, t ...

  3. Python扫描指定文件夹下(包含子文件夹)的文件

    扫描指定文件夹下的文件.或者匹配指定后缀和前缀的函数. 假设要扫描指定文件夹下的文件,包含子文件夹,调用scan_files("/export/home/test/") 假设要扫描 ...

  4. 生成ftp文件的目录树

    依赖 <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</a ...

  5. Python——合并指定文件夹下的所有excel文件

    前提:该文件夹下所有文件有表头且具有相同的表头. import glob # 同下 from numpy import * #请提前在CMD下安装完毕,pip install numppy impor ...

  6. python 将指定文件夹中的指定文件放入指定文件夹中

    import os import shutil import re #获取指定文件中文件名 def get_filename(filetype): name =[] final_name_list = ...

  7. python 读取指定文件夹中的指定文件类型的文件名

    import numpy as np import os path = 'F:\\wenjian'#指定文件所在路径 filetype ='.csv'#指定文件类型 def get_filename( ...

  8. Python选择指定文件夹的文件然后复制出其中几个文件到新的文件夹

    """ 要求: 1.读取cdm文件的所有子文件夹,然后每个文件夹里面是抽出一个一个mp3后缀的文件. 遍历所有的子文件,然后将这些mp3文件,保存到一个新的文件夹.文件夹 ...

  9. win7系统cmd命令切换到指定文件夹目录

    win7 系统下的cmd命令,直接cd命令切换盘符和以往有些不同,现在默认只能在当前盘符中改变目录,如果要改变盘符则需要多加一个/d命令.如下图所示:(对cd命令的帮助 大家可借助help cd命令进 ...

随机推荐

  1. 硬盘SMART参数解释

    Raw Read Error Rate           底层读取错误率,高值暗示盘体/磁头有问题 Throughput Performance        读写通量性能 (越高越好)      ...

  2. 转载:《理解OAuth 2.0》 阮一峰

    原文:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛 ...

  3. 使用swiper.js实现移动端tab切换

    在项目中遇到的,要实现tab切换,我用的是swiper.js 官网:http://www.swiper.com.cn/api/start/new.html <!DOCTYPE html> ...

  4. Redis Windows上下载安装

    其它的默认就可. public class RedisTest { public static void main(String[] args) { Jedis jedis = RedisPool.g ...

  5. python 全栈开发,Day26(hashlib文件一致性,configparser,logging,collections模块,deque,OrderedDict)

    一.hashlib文件一致性校验 为何要进行文件一致性校验? 为了确保你得到的文件是正确的版本,而没有被注入病毒和木马程序.例如我们经常在网上下载软件,而这些软件已经被注入了一些广告和病毒等,如果不进 ...

  6. Java入门第一章知识点总结

    -d是directory 目录的意思 cls:清楚doc里面的内容 ipconfig:显示网络配置信息 java -version:检查安装的jdk版本信息 是类型自动向上转换.  在输出时,根据当前 ...

  7. jeecg Export导出图片到excel

    import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; impo ...

  8. ERP采购申请管理(三十九)

    获取当前表单在流程中的状态: /// <summary> /// 获取当前表单在流程表中的状态 /// </summary> /// <param name=" ...

  9. 记一次Oracle分区表错误:ORA-14400: 插入的分区关键字未映射到任何分区

    https://blog.csdn.net/xdyzgjy/article/details/42238735

  10. 开始写博客,学习Linq(3)

    为什么需要Linq?(摘自原文) 读者会发现LINQ着眼于解决编程语言和数据库之间广发存在的不统一问题. 1.常见的问题,使用.NET Framework Class Library(FCL)提供了A ...