【Python】一時フォルダにフォルダをコピーする方法

Pythonを使用して、フォルダを一時フォルダにコピーする方法を紹介します。また、一時フォルダにコピーする際、フォルダ名を適当なものにする方法についても説明します。

一時フォルダにフォルダをコピーする方法

Pythonのshutilモジュールには、ファイルやフォルダをコピーするための関数が用意されています。shutil.copytree()関数を使用すると、指定したフォルダとその中身を別のフォルダにコピーすることができます。

Windowsの一時フォルダにフォルダをコピーするには、tempfileモジュールを使用して、一時フォルダのパスを取得してから、shutil.copytree()関数を使用してコピーします。

import shutil
import tempfile

# 一時フォルダのパスを取得する
temp_folder = tempfile.gettempdir()

# コピー元のフォルダパス
src_folder = "/path/to/src_folder"

# コピー先のフォルダパス
dest_folder = temp_folder + "/dest_folder"

# フォルダをコピーする
shutil.copytree(src_folder, dest_folder)

このコードでは、tempfile.gettempdir()関数を使用して、Windowsの一時フォルダのパスを取得しています。そして、取得した一時フォルダのパスに、コピー先のフォルダ名を追加して、dest_folder変数に設定しています。

その後、shutil.copytree()関数を使用して、src_folderにあるファイルやフォルダを一時フォルダにコピーしています。

一時フォルダにコピーする際、フォルダ名を適当なものにする方法

一時フォルダにコピーする際、フォルダ名を適当なものにするには、Pythonのtempfileモジュールを使用してランダムなフォルダ名を生成し、その名前で一時フォルダを作成するようにします。

import os
import shutil
import tempfile
import random
import string

# ランダムなフォルダ名を生成する関数
def generate_random_string(length):
    letters = string.ascii_lowercase
    return ''.join(random.choice(letters) for i in range(length))

# 一時フォルダのパスを取得する
temp_folder = tempfile.gettempdir()

# コピー元のフォルダパス
src_folder = "/path/to/src_folder"

# ランダムなフォルダ名を生成する
random_folder_name = generate_random_string(10)

# コピー先のフォルダパス
dest_folder = os.path.join(temp_folder, random_folder_name)

# フォルダをコピーする
shutil.copytree(src_folder, dest_folder)

このコードでは、generate_random_string()関数でランダムなフォルダ名を生成しています。string.ascii_lowercaseを使用して、小文字のアルファベットのみからなる文字列を作成し、random.choice()関数を使用して、その中からランダムに文字を選択して、指定した長さの文字列を生成します。

そして、os.path.join()関数を使用して、一時フォルダのパスとランダムなフォルダ名を結合し、コピー先のフォルダパスを作成します。最後に、shutil.copytree()関数を使用して、src_folderにあるファイルやフォルダをランダムなフォルダ名で一時フォルダにコピーしています。

まとめ

Pythonを使用して、Windowsの一時フォルダにフォルダをコピーする方法を紹介しました。また、一時フォルダにコピーする際、フォルダ名を適当なものにする方法についても説明しました。shutilモジュールのcopytree()関数を使用して、簡単にフォルダをコピーできるため、ぜひ活用してください。