teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

6

edit

2017/11/24 10:08

投稿

mkgrei
mkgrei

スコア8562

answer CHANGED
@@ -21,5 +21,6 @@
21
21
  ```
22
22
  これを一行に書くと
23
23
  ```python
24
+ import os
24
25
  folders = [folder for folder, subfolders, files in os.walk('root') if sum([f.endswith('.txt') for f in files]) > 0]
25
26
  ```

5

edit

2017/11/24 10:08

投稿

mkgrei
mkgrei

スコア8562

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  深さとファイルの数にもよりますが、
2
2
  ```python
3
3
  import glob
4
- folders = set([f.split('/')[0] for f in glob.glob('*/*.txt')])
4
+ folders = set([f.split('/')[1] for f in glob.glob('root/*/*.txt')])
5
5
  ```
6
6
 
7
7
  ---

4

add

2017/11/24 09:59

投稿

mkgrei
mkgrei

スコア8562

answer CHANGED
@@ -15,7 +15,11 @@
15
15
  ```python
16
16
  import os
17
17
  folders = []
18
- for folder, subfolders, files in os.walk('.'):
18
+ for folder, subfolders, files in os.walk('root'):
19
19
  if sum([f.endswith('.txt') for f in files]) > 0:
20
20
  folders.append(folder)
21
+ ```
22
+ これを一行に書くと
23
+ ```python
24
+ folders = [folder for folder, subfolders, files in os.walk('root') if sum([f.endswith('.txt') for f in files]) > 0]
21
25
  ```

3

add

2017/11/24 09:55

投稿

mkgrei
mkgrei

スコア8562

answer CHANGED
@@ -9,4 +9,13 @@
9
9
  ※Python3xの場合os.walkの返り値はジェネレータの気がします。
10
10
 
11
11
  例えばtxtファイルの数が大量の場合この方法は不利です。
12
- 最初にtxtファイルを見つけた時点でその親フォルダを含めるように書くべきでしょう。
12
+ 最初にtxtファイルを見つけた時点でその親フォルダを含めるように書くべきでしょう。
13
+
14
+ どうしてもos.walkを使いたいのなら
15
+ ```python
16
+ import os
17
+ folders = []
18
+ for folder, subfolders, files in os.walk('.'):
19
+ if sum([f.endswith('.txt') for f in files]) > 0:
20
+ folders.append(folder)
21
+ ```

2

tui

2017/11/24 09:53

投稿

mkgrei
mkgrei

スコア8562

answer CHANGED
File without changes

1

追記

2017/11/24 09:52

投稿

mkgrei
mkgrei

スコア8562

answer CHANGED
@@ -2,4 +2,11 @@
2
2
  ```python
3
3
  import glob
4
4
  folders = set([f.split('/')[0] for f in glob.glob('*/*.txt')])
5
- ```
5
+ ```
6
+
7
+ ---
8
+
9
+ ※Python3xの場合os.walkの返り値はジェネレータの気がします。
10
+
11
+ 例えばtxtファイルの数が大量の場合この方法は不利です。
12
+ 最初にtxtファイルを見つけた時点でその親フォルダを含めるように書くべきでしょう。