Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 5, 2016 21:20:58

Lion23
Зарегистрирован: 2015-12-03
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Считывание названия файла, и создание нового добавляя в название +1

Как сделать считывание названия файла, и создание нового добавляя в название +1
т.е. name1 -> name2 -> name3

этот кусок кода делает так: name 1 -> name11 -> name111.

 for name in os.listdir(path):
    name_, ext_ = os.path.splitext(name)
    newfile = os.path.join(path, ''.join((name_, '1', ext_)))
    with open(newfile, 'w') as f:
        f.write(open(os.path.join(path, name)).read())

P.S: и что бы не делать еще одну тему - хочу сейчас освоить vim и пользоваться им. Кто юзает вим на винде?

Отредактировано Lion23 (Сен. 5, 2016 21:22:02)

Офлайн

#2 Сен. 5, 2016 21:43:26

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Считывание названия файла, и создание нового добавляя в название +1

 num = 0
for name in os.listdir(path):
    name_, ext_ = os.path.splitext(name)
    num += 1
    newfile = os.path.join(path, ''.join((name_, str(num), ext_)))
    with open(newfile, 'w') as f:
        f.write(open(os.path.join(path, name)).read())

Офлайн

#3 Сен. 5, 2016 21:54:04

Lion23
Зарегистрирован: 2015-12-03
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Считывание названия файла, и создание нового добавляя в название +1

Romissevd
Получилось из этого когда так: name1 -> name12 -> name123.

Отредактировал:
 for name in os.listdir(path):
    name_, ext_ = os.path.splitext(name)
    num += 1
    newfile = os.path.join(path, ''.join((nameFile, str(num), ext_)))
    with open(newfile, 'w') as f:
        f.write(open(os.path.join(path, name)).read())

nameFile написал выше.
Спасибо)

Офлайн

#4 Сен. 5, 2016 21:58:23

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9992
Репутация: +  857  -
Профиль   Отправить e-mail  

Считывание названия файла, и создание нового добавляя в название +1

Lion23
P.S: и что бы не делать еще одну тему - хочу сейчас освоить vim и пользоваться им. Кто юзает вим на винде?
Создай тему в специальном разделе. Вообще, плохая практика задавать несколько вопросов в одном топике, потому что это приводит к свалке ответов.

Lion23
т.е. name1 -> name2 -> name3
Надо сделать функцию, которая принимает строку с именем и переделывает её, инкрементируя число на конце. Сама переделка делается через регулярные выражения путём выделения числа, приведения его к целочисленному типу, операции с числом, приведения нового числа обратно к строке и приклеивания её к нечисловой части имени.



Отредактировано py.user.next (Сен. 5, 2016 22:02:53)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version