Переименование папок в MATLAB, которые содержат много файлов, занимает слишком много времени - PullRequest
0 голосов
/ 28 июня 2018

Я использовал MATLAB для переименования ~ 100 папок. Я знал это:

movefile(old_folder_path,new_folder_path)

может работать. Но на этот раз переименование одной папки занимает минимум 1 минуту. Я предполагаю, что каждая моя папка содержит ~ 20000 изображений, которые в общей сложности около 1G.

Но переименовать папку вручную так же быстро, как переименовать пустые папки. Может ли кто-нибудь сказать мне, что происходит, и если есть какие-то другие обходные пути?

1 Ответ

0 голосов
/ 28 июня 2018

Если это намного быстрее в оболочке, используйте команду оболочки:

if ispc
   cmd = 'move';
else
   cmd = 'mv';
end
cmd = [cmd,' ',old_folder_path,' ',new_folder_path];
system(cmd);

Команда MATLAB system выполняет команду оболочки в оболочке по умолчанию. В Windows это cmd.exe, а в UNIX-подобных системах (Mac и Linux) оно задается переменной среды $MATLAB_SHELL или $SHELL (проверяется в том порядке, если ничего не существует, используется /bin/sh).

Выполненная здесь команда эквивалентна тому, что OP называет «переименованием вручную», поскольку любой графический интерфейс файлового менеджера (например, проводник Windows) будет выполнять те же базовые системные функции.

Я предполагаю, что MATLAB создает новый каталог и перемещает файлы один за другим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...