web-dev-qa-db-fra.com

Copiez les fichiers dans le même répertoire avec un autre nom

J'ai besoin de copier tous les fichiers html dans le même répertoire avec un autre nom et j'ai besoin de parcourir tous les répertoires dans le répertoire source.

Voici mon code jusqu'à présent,

import os
import shutil
os.chdir('/') 

dir_src = ("/home/winpc/test/copy/")

for filename in os.listdir(dir_src):
    if filename.endswith('.html'):
        shutil.copy( dir_src + filename, dir_src)
    print(filename)
10
Kit

Solution

import os
import shutil

def navigate_and_rename(src):
    for item in os.listdir(src):
        s = os.path.join(src, item)
        if os.path.isdir(s):
            navigate_and_rename(s)
        else if s.endswith(".html"):
            shutil.copy(s, os.path.join(src, "newname.html"))    

dir_src = "/home/winpc/test/copy/"
navigate_and_rename(dir_src)

Explication

Parcourir tous les fichiers du dossier source, y compris les sous-dossiers

import os
def navigate(src):
    for item in os.listdir(src):
        s = os.path.join(src, item)
        if os.path.isdir(s):
            navigate(s)
        else:
            # Do whatever to the file

Copier dans le même dossier avec un nouveau nom

import shutil
shutil.copy(src_file, dst_file)

Référence

Commander ma ( réponse à une autre question.

7
frankyjuang