[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でデータ解析を行っている。解析自体はpandasを用いて行い、最終結果はpandas.DataFrameの形式で保持されている。 この結果を他のアプリケーションで利用するため、json形式でファイル出力したい。 やり方 1...
現象 raspberry piでfirestoreをimportしようとするとタイトルのエラーが発生。 from from firebase_admin import firestore ImportError: Failed to import the Cloud...
概要 フィッティングを行いたい場合、pythonならばscipy.optimize.leastsqなどでできます。 しかし、フィッティングを行う場合、フィッティングパラメータに条件を付けたい場合も多々あります。 例えば、下記のようにパラメータa、bは共に正の範囲で最適な値を...
Comments