質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

667閲覧

Python:osモジュールを用いたファイル操作のリスト化が分からない

aikos

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/08/27 04:26

前提・実現したいこと

Python JupyterNotebookを使用しています。
下図のような構成のファイルを多次元のlist化したいのですが、うまくいきません。
参考にしたURLは「https://www.sejuku.net/blog/67787」です。
イメージ説明

試したこと

python

1import itertools 2import glob 3import os 4 5len_f = [] 6for curDir, dirs, files in os.walk('sample'): 7 len_f.append(len(files)) 8 9name = [] 10context = [] 11for curDir, dirs, files in os.walk('sample'): 12 name.append(curDir) 13 for x, y in itertools.product(files, range(len(len_f))): 14 context.append(os.path.join(curDir, x)) 15  if files == []: 16 for x, y in itertools.product(files, range(len(len_f))): 17 context.append('empty')

結果

python

1[Out] context 2 3['a1_1.tga', 'a1_2.tga', 'a1_3.tga', 'a2_1.tga', 'a3_1.tga', 'a3_2.tga', 'a3_3.tga', 'a4_3.tga', 4 'b1_1.psd', 'c1_1.tga', 'c111_1.psd']

本来望んでいた結果

python

1[Out] context 2 3[['empty'], ['empty'], ['a1_1.tga', 'a1_2.tga', 'a1_3.tga'], ['a2_1.tga'], ['a3_1.tga', 'a3_2.tga', 'a3_3.tga', 'a4_3.tga'], 4 ['empty'], ['b1_1.psd'], ['c1_1.tga'], ['empty'], ['empty'], ['c111_1.psd'], ['empty']]

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

こんな感じでしょうか。

python3

1# import itertools 2import glob 3import os 4 5walk_dir = "sample" 6 7#len_f = [] 8#for curDir, dirs, files in os.walk(walk_dir): 9# len_f.append(len(files)) 10 11name = [] 12context = [] 13for curDir, dirs, files in os.walk(walk_dir): 14 name.append(curDir) 15 if files == []: 16 context.append(['empty']) 17 continue 18 fs = [] # 一時保管用 19 for f in files: 20 fs.append(os.path.join(curDir, f)) 21 context.append(fs) 22print(context) 23print(name)

投稿2021/08/27 06:59

編集2021/08/27 07:02
jeanbiego

総合スコア3966

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問