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

- 2020年9月3日
- 読了時間: 1分
現象
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





コメント