この記事では「pythonでファイルを一括コピーする方法【特定の一部のファイルだけも・フォルダ内全てのファイル】」について解説していきます。
ポイントとしては
・os.listdirでフォルダ内のすべてファイル取得(globでもできます)
・shutil.copyでファイルのコピー
です。基礎的な処理のため、これらのコードは考えるというよりも、自然言語のように覚える&慣れるのがおすすめです。
それではいきます!
pythonでファイルを一括コピーする方法【特定の一部のファイルだけも・フォルダ内全てのファイル】
それでは以下でpythonでファイルを一括コピーする方法【特定の一部のファイルだけも・フォルダ内全てのファイル】方法を確認します。
最後に一括コピーが終了したかわかるように、プリントで「コピーが完了しました」などのメッセージを入れておくとわかりやすいですね。
import os
import shutil
# コピー元のディレクトリパス
src_dir = '/path/to/source/directory'
# コピー先のディレクトリパス
dst_dir = '/path/to/destination/directory'
# コピー元ディレクトリ内の全てのファイルを操作
for filename in os.listdir(src_dir):
# ファイルのフルパスを作成
src_file_path = os.path.join(src_dir, filename)
# ディレクトリを除外(ファイルのみ対象)
if os.path.isfile(src_file_path):
# ファイルをコピー先ディレクトリにコピー
shutil.copy(src_file_path, dst_dir)
print("コピーが完了しました。")
フォルダ内のフォルダも一気にコピーする場合
なお、ディレクトリ内にファイルだけでなく、ディレクトリもあり、これら全てをコピーしたい場合は、shutil.copytreeを使いましょう。
import shutil
# コピー元のディレクトリパス
src_dir = '/path/to/source/directory'
# コピー先のディレクトリパス
dst_dir = '/path/to/destination/directory'
# ディレクトリ全体(サブディレクトリやファイルも含む)をコピー
shutil.copytree(src_dir, dst_dir)
print("コピーが完了しました。")
特定の一部のファイルのみをコピーする方法【list】
import os
import shutil
# コピー元のディレクトリパス
src_dir = '/path/to/source/directory'
# コピー先のディレクトリパス
dst_dir = '/path/to/destination/directory'
# コピーしたいファイルのリスト
files_to_copy = ['file1.txt', 'file2.txt', 'file3.txt']
# コピーしたいファイルを一つずつ処理
for filename in files_to_copy:
# ファイルのフルパスを作成
src_file_path = os.path.join(src_dir, filename)
# ファイルが存在するか確認
if os.path.isfile(src_file_path):
# ファイルをコピー先ディレクトリにコピー
shutil.copy(src_file_path, dst_dir)
else:
print(f"ファイル {src_file_path} は存在しません。")
print("コピーが完了しました。")
コメント