[python]存在するフォルダなのにos.path.isdir()がFalse


現象


os.listdir()であるディレクトリ直下のファイル、フォルダ一覧を取得し、その中のフォルダに対して操作をしたい。ところがlistdirで取得した配列の要素をos.path.isdir()メソッドの引数に取ると何故かFalseになる(もちろんそのフォルダはちゃんと存在している)。


さらに詳しく調べると、対象ディレクトリをカレントディレクトリにしてos.listdir()したときはちゃんとTrueになる。対象ディレクトリをos.path.join()メソッドで変数としてlistdirメソッドの引数にとるとFalseになる模様。


import os

base_dir=r"C:\Users\Desktop"
os.chdir(base_dir)

path=os.path.join(base_dir, "test")
listdir=os.listdir(path)

# listdir: ['a', 'b', 'c']
os.path.isdir(listdir[0])
#False

原因


listdirの要素をよく見てみると、'が含まれていた(何故そうなるかはよく分からない)。

repr(listdir[0])
# "'a'"

os.path.joinでもう1度結合すれば上手くいく

fol=os.path.join(path, listdir[0])
os.path.isdir(fol)
# True

最新記事

すべて表示

概要 フィッティングを行いたい場合、pythonならばscipy.optimize.leastsqなどでできます。 しかし、フィッティングを行う場合、フィッティングパラメータに条件を付けたい場合も多々あります。 例えば、下記のようにパラメータa、bは共に正の範囲で最適な値を求める、という感じです。 f(x, a, b)=a*x^2+b (a>0 and b>0) 今回はそんな手法についてご紹介しま

靴を大切にしよう!靴管理アプリ SHOES_KEEP

納品:iPhone6.5①.png

靴の履いた回数、お手入れ回数を管理するアプリです。

google-play-badge.png
Download_on_the_App_Store_Badge_JP_RGB_blk_100317.png

テーマ日記:テーマを決めてジャンルごとに記録

訂正①2040×1152.jpg

ジャンルごとにテーマ、サブテーマをつけて投稿、記録できる日記アプリです。

google-play-badge.png