Pythonを使用してファイルのバッチを別のフォルダーにコピーする

# 日期:  2023/5/4 11:23
import shutil
import os

# 源文件夹路径
src_folder = 'VOCdevkit/VOC2007/JPEGImages'

# 目标文件夹路径
dst_folder = 'img/0504_test_sets'

# 获取源文件夹中的所有文件
files = os.listdir(src_folder)

lst = []
with open("VOCdevkit/VOC2007/ImageSets/Main/test.txt", "r") as file:
    for line in file:
        img_name = line.strip() + ".jpg"
        lst.append(img_name)

# 遍历文件并逐个复制到目标文件夹
for file_name in files:
    if file_name in lst:
        # 构造源文件路径和目标文件路径
        src_file_path = os.path.join(src_folder, file_name)
        dst_file_path = os.path.join(dst_folder, file_name)
        # 复制文件
        shutil.copy(src_file_path, dst_file_path)

方法:

shutil.copy()

copy() メソッドは、Unix の「cp」コマンドのように機能します。これは、宛先がフォルダーの場合、その中にソース ファイルと同じ名前 (ベース名) で新しいファイルが作成されることを意味します。さらに、このメソッドは、ソース ファイルの内容をコピーした後、ターゲット ファイルのアクセス許可をソース ファイルに同期します。

shutil.copyfile():

ソースコンテンツを宛先ファイルにコピーします。

ターゲット ファイルが書き込み可能でない場合、コピー操作により IOError 例外が発生します。

ソース ファイルと宛先ファイルの両方が同じ場合は、SameFileError が返されます。

ただし、宛先ファイルの名前が以前に異なっていた場合、コピーによってその内容が上書きされます。

ターゲットがディレクトリの場合、つまりこのメソッドがディレクトリにコピーしない場合、エラー 13 が発生します。

copy() と copyfile() の比較:

copy() はコンテンツをコピーするときに許可ビットを設定することもできますが、copyfile() はデータをコピーするだけです。

ターゲットがディレクトリの場合、copy() はファイルをコピーし、copyfile() はエラー 13 で失敗します。

元リンク: https://blog.csdn.net/ncc1995/article/details/94358099
参考:【Python】ファイルを別のフォルダーにコピー、フォルダーを新しい場所にコピー

おすすめ

転載: blog.csdn.net/ThreeS_tones/article/details/130483817