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

回答編集履歴

2

修正

2018/08/24 03:52

投稿

LouiS0616
LouiS0616

スコア35676

answer CHANGED
@@ -1,4 +1,4 @@
1
- 良く誤解されていますが、
1
+ しばしば誤解されていますが、
2
2
  globの引数として用いることができるのは正規表現ではなく、**ワイルドカード**を含んだ文字列です。
3
3
 
4
4
  ---
@@ -6,7 +6,7 @@
6
6
  未検証ですが、こんな感じで。
7
7
  ```Python
8
8
  filenames = []
9
- for filename in glob.glob('*'):
9
+ for filename in glob.iglob('*'):
10
10
  if 'b' in filename:
11
11
  continue
12
12
  if 'a' in filename:
@@ -16,7 +16,9 @@
16
16
  リスト内包表記を使っても良いです。
17
17
  ```Python
18
18
  filenames = [
19
- filename for filename in glob.glob('*')
19
+ filename for filename in glob.iglob('*')
20
20
  if 'b' not in filename and 'a' in filename
21
21
  ]
22
- ```
22
+ ```
23
+
24
+ 省メモリの観点でglob.iglobを用いていますが、glob.globでも問題は無いです。

1

追記

2018/08/24 03:52

投稿

LouiS0616
LouiS0616

スコア35676

answer CHANGED
@@ -1,3 +1,7 @@
1
+ 良く誤解されていますが、
2
+ globの引数として用いることができるのは正規表現ではなく、**ワイルドカード**を含んだ文字列です。
3
+
4
+ ---
1
5
  正規表現を持ち出さずとも、in演算子で帰属をチェックすれば済むように思います。
2
6
  未検証ですが、こんな感じで。
3
7
  ```Python