Как я могу переименовать файлы с помощью скрипта Python? - PullRequest
4 голосов
/ 08 ноября 2011

На моем plone-сайте у меня есть сотни файлов (pdf, doc, ...) в файловом поле объектов архетипов.Что-то пошло не так во время импорта, и все имена файлов отсутствуют.Проблема в том, что когда кто-то хочет открыть файл, так как расширение отсутствует, браузер не всегда предлагает открыть его с помощью программы просмотра.

Пользователь должен сохранить файл и добавить расширение, чтобы открыть его.

Могу ли я написать скрипт Python для переименования всех файлов с расширением в зависимости от типа файла?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 08 ноября 2011

http://plone.org/documentation/manual/plone-community-developer-documentation/content/rename

у вас есть все, что вам нужно здесь:)

Важной частью является следующее: parent.manage_renameObject (id, id + "-old")

Вы можете циклически проходить по подобъектам следующим образом:

for i in context.objectIds():
 obj = context[i]
 context.manage_renameObject(i, i + ".pdf")

context - это папка, в которую вы помещаете этот скрипт, папка, в которой хранятся все ваши pdfs

2 голосов
/ 08 ноября 2011

Стандартная библиотечная функция os.rename(src, dst) поможет. Это все, что вам нужно, если вы знаете, какое должно быть расширение (например, все файлы .pdf). Если у вас смешанный пакет файлов .doc, .pdf, .jpg, .xls без расширений, вам необходимо проверить содержимое файла, чтобы определить правильное расширение, используя что-то вроде python-magic .

import os

for fn in os.listdir(path='.'):
    os.rename(fn, fn + ".pdf")
...