[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
最新記事
すべて表示現象 raspberry piでfirestoreをimportしようとするとタイトルのエラーが発生。 from from firebase_admin import firestore ImportError: Failed to import the Cloud Firestore library for Python. Make sure to install the "google-clo
概要 フィッティングを行いたい場合、pythonならばscipy.optimize.leastsqなどでできます。 しかし、フィッティングを行う場合、フィッティングパラメータに条件を付けたい場合も多々あります。 例えば、下記のようにパラメータa、bは共に正の範囲で最適な値を求める、という感じです。 f(x, a, b)=a*x^2+b (a>0 and b>0) 今回はそんな手法についてご紹介しま
現象 spicy.optimizeのleastsqで最小二乗法でフィッティングをしようとしたらタイトルのエラーが発生。 from scipy import optimize import numpy as np def internalFunc1(x, plist): a=plist[0] b=plist[1] return a*x**2+b