我想使用 os.makedirs 创建目录结构。我尝试使用大括号扩展,它部分工作:
for x in list(braceexpand('/Users/admin/Desktop/{cat,dog,bird}/{thing1,thing2,thing3,thing4}')): os.makedirs(x,exist_ok=True)
但是,我不想手动创建名为“cat”、“dog”和“bird”的目录,而是想通过从列表中创建结构来自动化该过程。
animals = [ 'cat', 'dog', 'bird']
这是因为我有时只需要中间目录“dog”,有时需要“dog”和“cat”,有时需要全部三个。因此,如果能够根据列表包含的任何动物子集创建目录结构,那就太好了。
到目前为止,我还无法实现这一点(使用列表扩展括号)。
在此处的答案(python glob 中的 Brace 扩展)的帮助下,我能够使用嵌套 for 循环和下面的代码创建我想要的目录结构。
for x in ['/Users/admin/Desktop/{s}/{b}'.format(b=b,s=s) for b in ['thing1','thing2','thing3','thing4'] for s in ['cat', 'dog', 'bird']]: os.makedirs(x,exist_ok=True)
但我喜欢支架扩展的可读性,所以我很好奇是否有人知道如何使用它——或者它是否甚至可以完成。
谢谢!