仕事をするためのアルゴリズムを探しています。基本的に、ソース ディレクトリであるユーザーから入力を取得します。2 つの異なる辞書を作成したいと考えています。1 つはフォルダーのサブフォルダーを保持し、もう 1 つはフォルダーのファイルを保持します。例えば:
内部にlog.txtという名前のテキストファイルと3つのサブフォルダー、folder1、folder2、およびfolder3を含むフォルダー「フォルダー」があります。folder2 内には、txt1.txt という名前の別のテキスト ファイルとサブフォルダーという名前の別のフォルダーがあり、このサブフォルダーには pic.png という名前の画像があります。
folder->log.txt, folder1, folder2->(txt.txt, subfolder->pic.png), folder3
私が欲しいのは、次のような辞書です。
folders = {'folder1':'', 'folder2': 'subfolder', folder3}
files = {'log.txt':'', 'txt.txt': 'folder2', 'pic.png':'folder2/subfolder'}
一般に、必要なのは、フォルダーとサブフォルダーの明確な辞書であり、フォルダーとサブフォルダーを正しく作成した後で簡単に作成できるようにするためです。次に、ファイルの辞書で、ファイルが所有する場所を明確にします。ファイルの辞書の構造が違っていても構いませんが、その方が簡単で早いと思います。前もって感謝します。
編集:Python 3でMac OS Xを実行しています
編集2:
dirs = [d for d in os.listdir(source) if os.path.isdir(os.path.join(source, d))]
for folder in dirs:
tmp_source = source + folder
dirs2 = [d for d in os.listdir(tmp_source) if os.path.isdir(os.path.join(tmp_source, d))]
if dirs2 != []:
print('Folder: ', dirs2, 'is not empty')
dic[folder] = dirs2