web-dev-qa-db-ja.com

別の名前で同じディレクトリにファイルをコピーします

同じディレクトリ内のすべてのhtmlファイルを別の名前でコピーする必要があり、ソースディレクトリ内のすべてのディレクトリをナビゲートする必要があります。

これが私のコードです。

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

解決

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)

説明

サブフォルダーを含むソースフォルダー内のすべてのファイルをナビゲートする

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

新しい名前で同じフォルダにコピーします

import shutil
shutil.copy(src_file, dst_file)

参照

answer を別の質問にチェックアウトします。

7
frankyjuang