実現したいこと
glob.globでファイルパスを取得し、os.path.basenameでファイル名を取得したい
発生している問題・エラーメッセージ
Traceback (most recent call last): File "test.py", line 6, in <module> fname = os.path.basename(path_list) File "/usr/lib/python3.6/posixpath.py", line 146, in basename p = os.fspath(p) TypeError: expected str, bytes or os.PathLike object, not list
該当のソースコード
import os import glob path = glob.glob('./test/*.png') name = os.path.basename(path) print(name)
試したこと
import os import glob path = glob.glob('./test/*.png') for p in path: name = os.path.basename(p) print(name)
とするとエラーはでなくなったのですが、pathにあるファイルを順に入れてまわしているだけなので、結果としてnameには最後のパスでの結果しか入らないです
プログラミング初心者ということもありわかる方がいらっしゃいましたらヒントでもいいのでご教授いただきたいです。
リスト内包表記を使って、
basename_list = [os.path.basename(p) for p in path]
としてもよいでしょう。