Python3.4以降に追加されたpathlibが便利です。
Python
1# test.py
2from pathlib import Path
3
4path = Path(__file__).parent # test.pyのあるディレクトリ
5path /= '../../img_folder' # ディレクトリ移動
6
7print(path.resolve()) # 絶対パスを表示 (デバッグ用)
8
9for file_name in path.iterdir():
10 print(file_name)
元のコードが上手くいかなかった理由
カレントディレクトリが、test.pyがあるディレクトリと一致するとは限らないからです。
前者はPath.cwd().resolve()
やos.getcwd()
で調査できます。
また、基本的に相対パスは縦方向の移動しか出来ません。
ディレクトリscriptから二階層上のAppまで戻って、img_folderを見る必要があります。
ついでに
test.pyというモジュール名、dirといった変数名は避けた方が良いです。
前者は標準モジュールを、後者は組み込み関数を潰してしまいます。
あと、fという変数名は次のような文脈で使うことが多いです。
Python
1with open('hoge.txt') as f:
2 ...
ファイルオブジェクトではなくファイル名であることを強調できる変数名が良いでしょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/12/27 11:54
2017/12/27 12:14 編集