top of page

[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.DataFrameをjsonで出力

概要 pythonでデータ解析を行っている。解析自体はpandasを用いて行い、最終結果はpandas.DataFrameの形式で保持されている。 この結果を他のアプリケーションで利用するため、json形式でファイル出力したい。 やり方 1 pandas.DataFrameをdictionaryに変換 data = df.to_dict(orient='records') 2 ファイルに出力 wi

[Python] 条件付きでフィッティングをする

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

あなたの買い物をサポートする
アプリ Shop Plan

iphone6.5p2.png

​いつ何を買うかの計画を立てられるアプリです。

google-play-badge.png
Download_on_the_App_Store_Badge_JP_RGB_blk_100317.png

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

納品:iPhone6.5①.png

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

google-play-badge.png
Download_on_the_App_Store_Badge_JP_RGB_blk_100317.png

「後で読む」を忘れないアプリ ArticleReminder

気になった​Webサイトを登録し、指定時刻にリマインダを送れるアプリです

google-play-badge.png
Download_on_the_App_Store_Badge_JP_RGB_blk_100317.png
bottom of page