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