Заменить часть имен файлов во всех подкаталогах на Python - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь заменить часть имени файла другой для файлов во всех подкаталогах.

Мне удалось сделать это в текущей папке, где находится мой скрипт, но мне нужно, чтобы он работал для всех дочерних папок.

Вот код, который я использую для переименования файлов в текущей папке :

import os
path =  os.getcwd()
filenames = os.listdir(path)

for filename in filenames:
    os.rename(filename, filename.replace("PART_TO_REPLACE", "NEW_PART"))

Вот моя попытка заставить его работать для всех подкаталогов в моей папке:

import os
path = "C:/Users/me/Desktop/Python test"

for root,dirname,filename in os.walk(path):   
     for filename in filenames:
        os.rename(filename, filename.replace("PART_TO_REPLACE", "NEW_PART"))

Ничего не происходит, когда я запускаю второй скрипт. Мои файлы не переименованы. Я также не получаю никаких сообщений об ошибках.

Мой Python Во всплывающем окне оболочки отображаются:

Python 3.8.2 (v3.8.2:7b3ab5921f, Feb 24 2020, 17:52:18) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license()" for more information.
>>> 
======= RESTART: /Users/me/Desktop/Python test/Child Rename.py =======
>>> 

Спасибо

1 Ответ

0 голосов
/ 30 апреля 2020

Попробуйте это:

for root, dirnames, filenames in os.walk(path):
    for filename in filenames:
        file = os.path.join(root, filename)
        os.rename(file, file.replace("PART_TO_REPLACE", "NEW_PART"))
...