Вы можете использовать os.rename
или shutil
(см. здесь ).
В вашем случае, если ваша структура имен точно соответствует той, которую вы опубликовали, вы можете сделать это без регулярного выражения:
import shutil
old_path = '/Users/Test/rename_test/Salmon 2/Salmon 2 2013 Q4 Letter.pdf'
x = old_path.split(os.sep)[-1].split()
x = ' '.join((x[2],x[3],x[0],x[1],x[3],x[4]))
new_path = os.sep.join(old_path.split(os.sep)[0:-1] + [x])
#shutil.move(old_path, new_path)
shutil.copyfile(old_path, new_path)
ПОПРОБУЙТЕ с печатными заявлениями, пожалуйста!
Вам придется обернуть это циклом for для всех файлов. Лучше скопировать в новый каталог, а затем вручную подтвердить результаты.
import glob
for f in glob.glob('/Users/Test/rename_test/Salmon 2/*.pdf'):
# code above, where old_path = f
Это еще одна причина использовать копирование вместо перемещения, потому что если вы переименуете файлы в один и тот же каталог с тем же расширением, они будут извлекаться каждый раз, когда вы запускаете код (и нарушаете приведенный выше код).