Проблемы с переименованием файлов на индивидуальные имена - PullRequest
0 голосов
/ 02 февраля 2019

Невозможно переименовать старые файлы, расположенные в папке на рабочем столе.Там есть три файла item.pdf, item1.pdf и item2.pdf.Теперь я хочу переименовать эти файлы в new_item.pdf, new_item1.pdf и new_item2.pdf.

. Я попытался использовать следующий скрипт:

import os

filepath = "/Users/WCS/Desktop/all_files/"

for item in os.listdir(filepath):
    os.rename(item,"new_name"+".pdf")

Выполнение приведенных выше сценариевследующая ошибка.Принимая во внимание, что адрес папки является точным:

FileNotFoundError: [WinError 2] The system cannot find the file specified: 'item.pdf' -> 'new_name.pdf'

Как я могу переименовать эти три файла item.pdf, item1.pdf и item2.pdf в new_item.pdf, new_item1.pdf и new_item2.pdf из папки?

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

Вам нужно либо указать полный путь к вашему файлу в os.rename.

Что-то вроде:

for item in filepath:
    os.rename(os.path.join(filepath, item), os.path.join(filepath, "new_item.pdf"))

Или изменить текущий рабочий каталог на каталог, в котором существуют файлы:

os.chdir("/your/file/path")

, а затем введите свой код.

См. Также https://docs.python.org/2/library/os.html#os.rename

0 голосов
/ 02 февраля 2019

Попробуйте:

import os
import re

filepath = "/Users/WCS/Desktop/all_files/"

for item in os.listdir(filepath):
    match = re.search(r'\d+$', item)
    endnum = ""
    if match:
      endnum = match.group()
    os.rename(os.path.join(filepath, item), os.path.join(filepath, "new_name{}.pdf".format(endnum)))

или, если вы не хотите использовать re

import os

filepath = "/Users/WCS/Desktop/all_files/"

for item in os.listdir(filepath):
    new_name = item.replace('item', 'new_item')
    os.rename(os.path.join(filepath, item), os.path.join(filepath, "new_name{}.pdf".format(new_name)))
...