python生成5层文件目录

问题描述:要求创建5层文件目录,每一层5个文件夹,共5层,文件夹的名字要求使用随机字符串,不能使用随机数命名。

实验环境 Python3.x, Win10

思考:树的遍历、排列组合、笛卡尔积

最终选择了笛卡尔积的方式完成的该任务,代码如下:

import hashlib
import random
import itertools
import os


def create_md5():    #通过MD5的方式创建
    m=hashlib.md5()
    m.update(bytes(str(random.random()),encoding='utf-8'))
    return m.hexdigest()

if __name__ == '__main__':
	dir_list = []  # 保存文件夹的名字
	for i in range(5):
		dir_list.append(create_md5())

	path_list = list(itertools.product(dir_list, repeat=5))
	print("总个数为" + str(len(path_list)))
	for i in path_list:
	    print("/".join(i))
	    os.makedirs("/".join(i))

说明:

  1. 关于随机字符串的生成,可以查看上一篇转载的文章《【转】python生成随机字符串
  2. 关于python内置的迭代器(姑且这么称呼吧),可以参考官方的 doc 和 http://outofmemory.cn/code-snippet/2390/python-itertools-module-learn-note
  3. 由于本代码中每一个文件的名字都比较长,所以如果在创建过程中出现找不到该路径的错误,那么可以参考《Win10怎样解除260个字符路径长度限制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风醉雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值