0

私は造る

totalset = {} 

フォルダA、B、C、Dからファイル名を抽出します。

for file_name in (os.listdir(full_subdir_name)):
    full_file_name = os.path.join(full_subdir_name, file_name)

ここで、すべてのファイル名を含むnamelistと呼ばれるものを作成したいと思います。これにより、フォルダー内のすべてのファイルを次のようにトラバースできます。

for file in namelist[A]:
    blabla...

for file in namelist[B]:
    blabla.. .  

私は何をすべきか?

4

1 に答える 1

0

おそらく「リスト内包」を使用する必要があります。これを行う方法の例を次に示します。

lst_names = [os.path.join(full_subdir_name, n) for n in os.listdir(full_subdir_name)]

したがって、namelistこのような完全なものを構築します。まず、名前のリストを設定する必要があります。

# example using Windwows filenames
# note that we use "raw strings" with r'' so the backslash will not be weird
lst_names = [r'C:\Users\steveha\Desktop', r'C:\Users\steveha\Documents', r'C:\Users\steveha\Music']

# example using Mac or Linux filenames
lst_names = ['/home/steveha/Desktop', '/home/steveha/Documents', '/home/steveha/Music'

lst_names名前を設定したら、完全なものを作成しますnamelist

namelist = {}

for full_subdir_name in lst_names:
    namelist[full_subdir_name] = [os.path.join(full_subdir_name, n) for n in os.listdir(full_subdir_name)]

個人的には、以下よりも短い変数名の方が読みやすいと思いますfull_subdir_name

namelist = {}

for f in lst_names:
    namelist[f] = [os.path.join(f, n) for n in os.listdir(f)]
于 2012-04-12T03:22:21.127 に答える