python指定目录_python生成指定文件夹目录树

# -*- 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('命令行参数太多,请检查!')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值