# -*- 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. Getting started with machine learning in Python

    Getting started with machine learning in Python Machine learning is a field that uses algorithms to ...

  2. UML和模式应用5:细化阶段(1)--第1次迭代

    1.前言 从本文开始进入细化阶段,讨论迭代技术的基础,本次讨论将着重讨论第一次迭代,以POS机为例. 2. 第一次迭代处理的需求(以NextGen POS项目处理销售用例) 实现 处理销售 用例中基本 ...

  3. [转]AMBA、AHB、APB、ASB总线简介

    [转]http://www.cnblogs.com/zhaozhong1989/articles/3092140.html 1.前言 随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大.数字IC ...

  4. 如何在Linux下写无线网卡的驱动【转】

    转自:http://www.crifan.com/files/doc/docbook/linux_wireless/release/html/linux_wireless.html 版本:v0.3 H ...

  5. Linux下查看文件或文件夹大小的命令df 、du、ls

    转自:http://www.cnblogs.com/benio/archive/2010/10/13/1849946.html 当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的 ...

  6. openwrt 中route配置

    route配置项默认保存在文件 /etc/config/network 中. 配置route的接口“interface” 使用的协议需要为dhcp才可. config interface 'wan' ...

  7. zabbix安装及简单配置

    Zabbix基本介绍: zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.它能监视各种网络参数,保证服务器系统的安全运营:并提供柔软的通知机制以让系统管理员快 ...

  8. jquery之data()

    $("#test").data("myProp","123") alert($("#test").data(" ...

  9. ajax相关知识点

    AJAX的概念,即“Asynchronous Javascript And XML” 通过在后台(浏览器的后台)与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个 ...

  10. 前端工程化-webpack(打包JS)(二)

    一.第一种打包方式 webpack entry<entry> output 假设目录结构如下: index.html是入口文件 打包app.js为bundle.js如下 app.js 当使 ...