Уведомления

Группа в Telegram: @pythonsu

#1 Май 17, 2017 16:43:44

Oleg2017
Зарегистрирован: 2017-03-14
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Переименование файлов.

Эсть масив файлов с именами по шаблону:
5555_22_1_Иванов Иван Иванович.doc
7777_33_1_Петров Петр Петрович.doc
8888_21_2_Сидоров Степан Степанович.doc

и.т.д

Можно ли в Python переименовать файлы в такой вид:
Иванов Иван Иванович_5555_22_1.doc
Петров Петр Петрович_7777_33_1.doc
Сидоров Степан Степанович8888_21_2.doc

Офлайн

#2 Май 17, 2017 17:02:58

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

Переименование файлов.

 l = ['5555_22_1_Иванов Иван Иванович.doc',
 '7777_33_1_Петров Петр Петрович.doc',
 '8888_21_2_Сидоров Степан Степанович.doc']
for i in l:
    lst = i.split('.')
    oldname = lst[0].split('_')
    newname = oldname[-1] + '_'+ '_'.join(oldname[:-1])+'.'+lst[1]
    print newname
переименовать - os.rename()

Отредактировано vic57 (Май 17, 2017 17:03:38)

Офлайн

#3 Май 17, 2017 17:29:16

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Переименование файлов.

 n = '5555_22_1_Иванов Иван Иванович.doc'
number = (n[:n.rfind('_')])
name = n[n.rfind('_')+1:n.rfind('.')]
expansion = n[n.find('.'):]
nev_n = '{}_{}{}'.format(name,number,expansion)
print(nev_n)

Отредактировано marvellik (Май 17, 2017 17:30:41)

Офлайн

#4 Май 18, 2017 14:09:15

Oleg2017
Зарегистрирован: 2017-03-14
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Переименование файлов.

А если в меня вместо подчеркивания всюду пробулы стоят? Например:
5555 22 1 Иванов Иван Иванович.doc

надо Иванов Иван Иванович 5555 22 1.doc

Офлайн

#5 Май 18, 2017 14:45:58

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

Переименование файлов.

RTFM

Отредактировано vic57 (Май 18, 2017 16:09:40)

Офлайн

#6 Май 18, 2017 16:36:25

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Переименование файлов.

 n = '5555 22 1 Иванов Иван Иванович.doc'
expansion = n[n.find('.'):]
number, name = [], []
for i in n[:n.find('.')].split():
      number.append(i) if i.isdigit() else name.append(i)
print(' '.join(name+number)+expansion)

Иванов Иван Иванович 5555 22 1.doc

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version