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

回答編集履歴

2

追記

2017/12/27 10:39

投稿

LouiS0616
LouiS0616

スコア35676

answer CHANGED
@@ -17,6 +17,9 @@
17
17
  カレントディレクトリが、test.pyがあるディレクトリと一致するとは限らないからです。
18
18
  前者は`Path.cwd().resolve()`や`os.getcwd()`で調査できます。
19
19
 
20
+ また、基本的に相対パスは**縦方向の移動しか出来ません。**
21
+ ディレクトリscriptから**二階層上**のAppまで戻って、img_folderを見る必要があります。
22
+
20
23
  ついでに
21
24
  ---
22
25
  test.pyというモジュール名、dirといった変数名は避けた方が良いです。

1

追記

2017/12/27 10:39

投稿

LouiS0616
LouiS0616

スコア35676

answer CHANGED
@@ -8,6 +8,24 @@
8
8
 
9
9
  print(path.resolve()) # 絶対パスを表示 (デバッグ用)
10
10
 
11
- for file in path.iterdir():
11
+ for file_name in path.iterdir():
12
- print(file)
12
+ print(file_name)
13
- ```
13
+ ```
14
+
15
+ 元のコードが上手くいかなかった理由
16
+ ---
17
+ カレントディレクトリが、test.pyがあるディレクトリと一致するとは限らないからです。
18
+ 前者は`Path.cwd().resolve()`や`os.getcwd()`で調査できます。
19
+
20
+ ついでに
21
+ ---
22
+ test.pyというモジュール名、dirといった変数名は避けた方が良いです。
23
+ 前者は標準モジュールを、後者は組み込み関数を潰してしまいます。
24
+
25
+ あと、fという変数名は次のような文脈で使うことが多いです。
26
+ ```Python
27
+ with open('hoge.txt') as f:
28
+ ...
29
+ ```
30
+
31
+ ファイルオブジェクトではなくファイル名であることを強調できる変数名が良いでしょう。