#python #function #rename
Вопрос:
Как правило, os.rename требует двух входных данных: «оригинального» и «нового» имени файла.
Параметры: источник: объект, подобный пути, представляющий путь к файловой системе. Это путь к исходному файлу, который необходимо переименовать. назначение: Объект, подобный пути, представляющий путь к файловой системе. src_dir_fd (необязательно): Файловый дескриптор, ссылающийся на каталог. dst_dir_fd (необязательно): Файловый дескриптор, ссылающийся на каталог.
Тип возвращаемого значения: Этот метод не возвращает никакого значения.
Итак, что происходит в следующем сценарии?
os.rename(original, original)
И есть ли какой-то вред, если это будет работать с большим количеством файлов?
Комментарии:
1. В системах POSIX, предполагая, что
rename(2)
используется системный вызов, это безопасно: «Если oldpath и newpath являются существующими жесткими ссылками, ссылающимися на один и тот же файл, то rename() ничего не делает и возвращает статус успешного выполнения».2. В настоящее время используется Python в Windows в качестве базовой системы, доступ к диску NAS.
3. Вы пробовали создать пустой тестовый файл и запустить команду? Если нет, сделайте это. Если да, расскажите, что произошло.
4. Я не ожидал, что содержимое файлов пострадает, мне было интересно, не приводит ли это к «перезаписи» имени файла и, следовательно, ненужной записи на диск (срок службы диска). И потенциальное снижение скорости приложения, если его распространить на диск с большим количеством файлов.
5. Отслеживая пустой файл (как предложил Mad Physicist) и просматривая свойства файла, изменение имени файла приведет к обновлению «времени» доступа к файлу, но когда имя не изменяется из-за одинаковых входных данных, время доступа не обновляется.