os.scandir 声称是一个更好的目录迭代器,然后比 os.walk()更快。它成为了Python3的stdlib的一部分。在生产环境中工作,从 os.walk()转移到 os.scandir()
时需要考虑的事项答案 0 :(得分:1)
我曾经在Python 2.7中使用过os.scandir()。由于奇怪的unicode字符,它一直在崩溃。 (ù ỳ ǹ
等等)。切换回os.walk(),一切都很好。如果这是一个问题,我建议你测试一下。
来自它的公寓真的更快,特别是在Windows上。
答案 1 :(得分:-1)
我对Python不太熟悉,但最近我必须编写一些Python 2.x脚本,使用os.walk()来枚举大量文件。最后我在C#上编写了虚拟文件枚举。 代码:
string dirPath = @"d:\";
DirectoryInfo di = new DirectoryInfo (dirPath)
var fi = di.EnumerateFiles ("*", SearchOption.AllDirectories);
运行虚拟枚举,python变得更快:) 注意:这仅适用于.NET 4.0及更高版本