質問: glob.glob(r'C:\Users\tani\Desktop/fm_data20??_??_??.csv') # 変更後ファイル path2= r'C:\Users\tani\Desktop\アップロード.csv' # ファイル名の変更 os.rename(path1, path2) # ファイルの存在確認 print(os.path.exists(path2)) ``` ### 補足情報(FW/ツールのバージョンなど) Python 3.7.3 Windows7 jupyter notebook chromedriver
回答: `glob.glob`はマッチするパスのリストを返します。 glob --- Unix 形式のパス名のパターン展開 — Python 3.7.6 ドキュメント > > pathname (パスの指定を含んだ文字列でなければいけません) にマッチする、空の可能性のあるパス名のリストを返します。pathnameは (/usr/src/Python-1.5/Makefileのように) 絶対パスでも、(../../Tools/*/*.gifのように) 相対パスでもよく、シェル形式のワイルドカードを含んでいてもかまいません。結果には (シェルと同じく) > > 壊れたシンボリックリンクも含まれます。 > > > そのため返されたリストの要素を`for`文などを使って`rename`に渡してやる必要があります。 (`/`になっている部分を`\`に変えてあります) ``` path_list = glob.glob(r'C:\Users\tani\Desktop\fm_data20??_??_??.csv') path2= r'C:\Users\tani\Desktop\アップロード.csv' for path1 in path_list: os.rename(path1, path2) ``` とはいえ、複数のファイルを`アップロード.csv`にリネームしたいということはないと思うので、質問者さんの目的に適うのであれば、空のリストではないことをチェックして、第1要素を渡してしまってもよいでしょう。 ``` if path_list: os.rename(path_list[0], path2) ```