Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python:根据dict创建目录结构_Python 3.x_List_Dictionary_Sequence_Directory Structure - Fatal编程技术网

Python 3.x Python:根据dict创建目录结构

Python 3.x Python:根据dict创建目录结构,python-3.x,list,dictionary,sequence,directory-structure,Python 3.x,List,Dictionary,Sequence,Directory Structure,在Python中,给定一个dict(列表或序列),如: 我想以一种巧妙的方式创建目录结构,如下所示: 'a_9/b_6/c_10'. 导入操作系统 def make_dir(字典): 对于键,字典中的val.items() new_dir=f“{key}{val}” os.mkdir(新目录) os.chdir(新目录) 编辑:或更简洁 导入操作系统 makedirs(“/”.join(对于key,f“{key}{val}”,对于d.items()中的val) 在Python中字典没有严格的

在Python中,给定一个dict(列表或序列),如:

我想以一种巧妙的方式创建目录结构,如下所示:

'a_9/b_6/c_10'.
导入操作系统
def make_dir(字典):
对于键,字典中的val.items()
new_dir=f“{key}{val}”
os.mkdir(新目录)
os.chdir(新目录)
编辑:或更简洁

导入操作系统
makedirs(“/”.join(对于key,f“{key}{val}”,对于d.items()中的val)

在Python中字典没有严格的顺序(尽管从Python
3.6开始就有),但是如果您对它进行排序(假设您需要),也许可以按键进行排序,您可以尝试如下操作:

new_dir = os.path.join(*[f'{k}_{v}' for k, v in sorted(d.items())])
os.makedirs(new_dir)

你好,瓦利斯顿。到目前为止你试过什么?嗨,我还没试过。我将在dict.keys()上创建一个for循环,并为每次迭代创建子目录,将其存储为字符串变量,以便在下一次for循环迭代中创建下一个子目录。我的目标是学习一种新的学习方法。谢谢,现在没有.join()和f{}格式化字符串。谢谢@PyPingu。我没有意识到新的有趣功能:集合上的OrderedDict。实际上,我想根据以前选择的带有人工排序键的单独列表对dict键进行排序。python 3.7.3在发出“new_dir=…”---------TypeError:预期的str、bytes或os.PathLike对象,而不是Generatorr--------可以解决吗?我也尝试了str(v)而不是v.@DavidGildour解决方案在这里工作。是的,很抱歉我错过了有趣的解包
*
。谢谢。
new_dir = os.path.join(*[f'{k}_{v}' for k, v in sorted(d.items())])
os.makedirs(new_dir)