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

回答編集履歴

2

修正

2017/12/27 06:38

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -1,7 +1,9 @@
1
1
  > このコードは指定したディレクトリの、拡張子が.txtで終わるドキュメントをすべて取得していくコードであっていますか?
2
2
 
3
+ 違います。
3
- くともdirsはそようなリストになっていかと思す。
4
+ 条件が`not x.endswith('.txt')`なので、**txt以外**のファイルあるいはディレクトリです。
5
+
4
- かし、[glob.glob](https://docs.python.jp/3/library/glob.html#glob.glob)を使うともっと簡単に書けます。
6
+ テキストファイルをすべて取得たいのなら、[glob.glob](https://docs.python.jp/3/library/glob.html#glob.glob)を使うと簡単に書けます。
5
7
  ```Python
6
8
  import glob
7
9
  txt_files = glob.glob('./text/*.txt')

1

修正

2017/12/27 06:38

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -1,4 +1,28 @@
1
+ > このコードは指定したディレクトリの、拡張子が.txtで終わるドキュメントをすべて取得していくコードであっていますか?
2
+
3
+ 少なくともdirsはそのようなリストになっているかと思います。
4
+ しかし、[glob.glob](https://docs.python.jp/3/library/glob.html#glob.glob)を使うともっと簡単に書けます。
1
5
  ```Python
6
+ import glob
7
+ txt_files = glob.glob('./text/*.txt')
8
+ print(txt_files)
9
+ ```
10
+
11
+ ここで`*`はいわゆる**ワイルドカード**で、『この部分は何でもいいよ』といった意味です。
12
+
13
+ ---
14
+ > また、その場合C:\cygwin64\home\hoge\text内の複数のディレクトリに対して検索をかけてほしい場合、./textの部分をどのように変更すればよいですか?
15
+
16
+ 複数のディレクトリという表現が曖昧ですが、おそらく次で良いでしょう。
17
+ ```Python
18
+ import glob
19
+ txt_files = glob.glob('./text/*/*.txt')
20
+ print(txt_files)
21
+ ```
22
+
23
+ 修正前
24
+ ---
25
+ ```Python
2
26
  for x in listdir(r'C:\cygwin64\home\hoge\text')
3
27
  ```
4
28