我一直在使用手术室步行()方法,列出指向可以找到特定文件的所有文件夹和子文件夹的路径列表。在
我厌倦了使用一堆循环和elif,并将它们打包成一个(相当混乱)的列表理解,这完全是我想要的:
import os
directory = "C:\\Users\\User\\Documents"
file_name = "example_file.txt"
list_of_paths = [path for path in (os_tuple[0] for os_tuple in os.walk(directory) if file_name in (item.lower() for item in os_tuple[2]))]
我有两个问题。首先,也是最重要的一点是:有没有更有效的方法来做到这一点?我经常希望在同样多的文件夹中找到几百个文件,如果它在服务器上,可能需要几分钟。在
第二个问题是:如何使其更具可读性?在一个列表理解中有两个生成器理解,感觉很混乱。在
更新:我被告知要使用Glob,所以我不得不尝试一下。它似乎和我的列表理解一样有效手术室步行(). 因此,我的下一步将在几个不同的文件和文件夹上测试这两个版本。在
^{pr2}$如有任何补充意见,我们非常欢迎。在
更新2:在测试了两种方法后,我得到的结果表明手术室步行()方法的速度大约是环球网()方法。测试是在大约400个文件夹上进行的,总共有326份我正在寻找的文件。在
目前没有回答
相关问题 更多 >
编程相关推荐