os.scandir претензии быть лучше каталог итератора и быстрее, чем os.walk(). Он стал частью stdlib для Python3. Работа в производственной среде, какие вещи, которые следует учитывать при переходе от os.walk() к os.scandir()Python - os.walk() против os.scandir()
1
A
ответ
1
I когда-то использовали os.scandir() в Python 2.7. Он продолжал сбой из-за странных символов юникода. (ù ỳ ǹ
и тому подобное). Переключился обратно на os.walk(), и все было в порядке. Я бы предложил вам проверить это, если это вызывает беспокойство.
Appart от этого действительно быстрее, особенно на Windows.
-1
Я не очень хорошо знаком с Python, но недавно мне нужно написать скрипт Python 2.x, который использует os.walk() для перечисления большого количества файлов. И в конце я написал список фиктивных файлов на C#. Код:
string dirPath = @"d:\";
DirectoryInfo di = new DirectoryInfo (dirPath)
var fi = di.EnumerateFiles ("*", SearchOption.AllDirectories);
запустить фиктивный перечислите и питон становится быстрее :) Примечание: Эта функция доступна только в .NET 4.0 и выше
Вы можете просто установить 3.5 и использовать 'walk', который будет использовать 'scandir', если я правильно помню. – TigerhawkT3
Но что, когда вы используете любую 2 версию (2.7) и хотите использовать os.scandir? – user1767754