Так что я чувствую, что, вероятно, я использую неправильные слова, чтобы искать код для этого в Google/StackOverflow.Переименование файлов, которые существуют с Python
Я строю сценарий, который (между прочим) будет делать много движущихся файлов.
В настоящее время у меня есть небольшая строка, чтобы разделить имя файла с расширением и добавить имя файла + (дублировать) + расширение, если файл уже существует в каталоге.
Однако, я чувствую, что существует простой маленький однострочный слой, который будет по существу делать (дублировать), (дублировать 1), (дублировать 2), (дублировать 3) и т. Д. (По сути, просто меняя эту вторую номер на следующий номер, если файл существует с текущим).
Какое простое решение я слишком глуп, чтобы понять себя?
Извините, мне не пришло в голову, что мой текущий код может помочь людям ответить на мой вопрос!
def destination(self, f): return os.path.abspath('.')+'/'+self.filename(f)+'/'+self.filename(f)+' (Duplicate)'+self.extension(f) if and os.path.isfile(os.path.abspath('.')+'/'+self.filename(f)+'/'+f) else os.path.abspath('.')+'/'+self.filename(f)+'/'+f
Я использовал несколько измененного метод получения имени файла и расширения (по сути просто обойти некоторую Rar часть и некоторые вопросы папок). Но «self.filename (f) и self.extension (f) в основном являются просто os.splittext (f) [0] и os.splittext (f) [1].
Что не-просто-достаточно решение у вас уже есть? –
@ Robin Hood ** Вращение файла ** может быть термином, о котором вы говорите. В Python модуль [logging] (http://docs.python.org/library/logging.html) используется для настройки поворота файла и, следовательно, он заботится о модуле регистрации. Я нашел [this] (http://stackoverflow.com/questions/4654915/rotate-logfiles-each-time-the-application-is-started-python), который помогает настроить настройку ведения журнала (и последующего вращения файла). Непосредственно переименуйте (* или * rotate *) имена файлов *. –
Прошу прощения, если я не был ясен, проблема не в том, что мое решение не достаточно простое, просто мое решение может касаться только ОДНОГО дубликата, и единственный способ, которым я могу думать, сделать это, сделать два заключается в том, чтобы просто добавить еще один блок кода, который является одним и тем же, но с «Дубликат 1», и проверяет как обычный, так и «Дубликат» - что-то, что было бы совершенно смешно, а также очень долго очень быстро и, по сути, ограниченный тем, сколько из них я решил добавить. –