

dataディレクトリ直下に、imagesフォルダとtest.pyがあります。imagesフォルダ内にはdata1・data2の２つのフォルダがあり、data1・data2には1.png・2.png・・・と画像が入っています。今このdata1・data2の中にある画像を取り出したいです。  
test.pyに  

[code]

        import argparse
        parser = argparse.ArgumentParser()
        parser.add_argument("--img_dir")
        data_dir = parser.parse_args()
        if data_dir.img_dir is None or not os.path.exists(data_dir.img_dir):
           raise Exception("data_dir does not exist")
        input_paths = glob.glob(os.path.join(data_dir.img_dir, "*.jpg"))
    
[/code]

とコードを書きました。このコードを

[code]

    python test.py images
    
[/code]

と実行すると、いつも"data_dir does not
exist"とエラーが出ます。なぜファイルを指定しているのにこのようにいつも出るのかわかりません。調べながらこのコードを書き、そんなことはないと思うのですが、os.path.exists(data_dir.img_dir)ではフルパスじゃないと認識しないのでしょうか？どのように直せばよいでしょうか？


CC BY-SA 3.0
2018-02-14T10:21:33.110
41708
2018-02-14T17:09:40.050
27403
question
python
いつもフォルダが認識されない


Pythonでは実行するスクリプトがあるフォルダがカレントフォルダとなります。フォルダ構成を見るとtest.py, data1,
data2は同じimagesフォルダにあるので、今のコードと構成では`python test.py data1`などとする必要がある気がします。


CC BY-SA 3.0
2018-02-14T12:34:23.067
41709
2018-02-14T12:34:23.067
26311
41708
answer


コメント欄で @metropolis
さんも書かれていますが、`data`をカレントディレクトリとすると、スクリプトと画像ファイルの位置関係は以下の様になっているはずなので、`test.py`から画像を参照するためには`images/data1/`,`images/data2/`,
... が相対パスになるはずです。

[code]

    test.py
    images/data1/1.png
    images/data1/2.png
    images/data2/1.png
    images/data2/2.png
    
[/code]


CC BY-SA 3.0
2018-02-14T17:09:40.050
41716
2018-02-14T17:09:40.050
3060
41708
answer