glob.globで読み取ったディレクトリのパスが「/」ではなく「¥¥」で表示されてしまいます。
私はMacOS Catalinaバージョン10.15.6にインストールしたAnaconda for mac の環境でjupyter notebookを使ってコードを書いています。しかし都合上、macで作成したコードファイル「.ipynb」と「.py」を別のパソコンで実行することになりましたが、全く同じコードでmacでは回っているのに別のパソコン「Windows 10 Anaconda for windows」では回らなくなりました。原因を特定したところ、どうやらglob.globモジュールでディレクトリのパスを読み込む際に、「/」が「¥¥」として読み込まれていることが原因の様でした。初めはWindowsではパスの「/」が「¥」と同じだから何かしらの影響で¥に変わっているのだろうと思いましたが、os.mkdirモジュールにてファイルを作成する際にはしっかり「/」で読み込まれていました。
原因をネット上で探すも環境にかかわらず通常glob.globは/でパスを読む結果ばかりで¥になっている問題はどこにもありませんでしたのでこちらで質問するに至った次第です。
コードは以下の様になります
Anaconda for windows---jupyter notebook
Currentディレクトリに存在する拡張子「.ipynb」から実行。同ディレクトリ内の「output」ディレクトリにアクセスする際に発生
Current
output------------------current
|------aaa
|------bbb
実行コード.ipynb
インポート先ファイル.py
・
・
・
コード
import インポート先ファイル
#インポート先ファイルから関数を呼び出し
#インポート先の関数にて
if "output/current" not in glob.glob("output/*"): #<-ここです。
os.mkdir("output/current")
エラ〜メッセージ
FileExistError: [WinError 183] すでに存在するファイルを作成することはできません。:"output/current"
一回回して"output"に"output/current"が入っている状態で、本来はifを通らずに進むところですがこのメッセージが発生。
そこでglob.glob単体で実行すると、、、、
glob.glob("output/*")
結果
["output¥¥current","output¥¥aaa","output¥¥bbb"]
の様になりディレクトリのパスが/ではなく¥¥と誤認識されてしまったためにif文の中に入ってしまった様です。
以上の問題点について、もしよろしければ経験豊富な皆様のお力をお借りできませんでしょうか。ずっとそこでつまずいていますので解決方法をご教示いただけますと幸いでございます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。