繁体   English   中英

python中的多元组

[英]Multiple-tuple in python

我相信这已经在其他地方得到了解释,但是我找不到对我来说完全有意义的东西。

我正在尝试在python中使用os.walk()函数,该函数返回一个三元组。 我现在了解如何正确使用它(对于os.walk()中的x,y,z),但是我仍然对3元组的内部结构感到困惑。 可能不一定完全理解这一点,但请出于我的理智使我幽默。

根据os.walk的文档,三元组响应的形式为(rootdirname,sub dirs列表,文件列表)。 但是,这仅描述单个目录的数据,而不描述子目录的数据。

我的问题是,如果整个对象的形式实际上是:A)一个3项元组的列表(root1,subdirs1,files1),(root2,subdirs2,files2),...

要么

B)由3个不同的列表组成的元组((root1,root2),(subdirs1,subdirs2),(files1,files2)),其中仅通过tuple魔术,所有的1都关联在一起,而所有的2都关联在一起。

谢谢您的帮助

编辑:感谢Peter DeGlopper提供有关生成器对象的技巧。

产生最初的问题是因为我假设os.walk()返回一个三元组列表,但实际上,它在循环的每次迭代中动态生成一个三元组列表。

对于所遍历的每个目录,您将获得该目录的路径,该目录中的文件以及该目录中的目录的元组。 后两个是序列(列表,但这没关系)。 您可以这样使用它们:

for root, files, dirs in os.walk("/path/"):
    for filepath in files:
        filepath = os.path.join(root, filepath)
        # process file
    for dirpath in dirs:
        dirpath = os.path.join(root, dirpath)
        # process dir

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM