0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Pathlibで半角スペースを含むフォルダにアクセスできなかった話

Last updated at Posted at 2020-12-23

Pythonのお勉強でPathlibを扱っていた時に詰まったので解決策を示しておきます。(Mac)

注意

  • @shiracamus さんより指摘
    • Windows環境ではパスの区切り文字が違うのでこの解決策では正常に動作しません
      • re.sub(r'\\ ',' ',str(x))とすることでWindowsに対応

問題内容

例) 以下のコードで ~/test blank folder/ の存在を確認する

test.py
import pathlib
x = input('')
fpath = pathlib.Path(x)
print(fpath.exists())

python blankCharPathlib.py
path >>> ~/test\ blank\ folder 
~/test\ blank\ folder  False

バックスラッシュで半角スペースがエスケープされているので、上手く動作しない
シングルクォーテーションやダブルクォーテーションで囲んでみたが意味無し

python blankCharPathlib.py
path >>> '~/test\ blank\ folder'
'~/test\ blank\ folder' False

python blankCharPathlib.py
path >>> "~/test\ blank\ folder"
"~/test\ blank\ folder" False

#解決策
エスケープのバックスラッシュを消す。解決
※2020/12/23 12:22 変更

test2.py
import pathlib
import re
x = input('path >>> ')
fpath = pathlib.Path(re.sub(r'\\ ',' ',str(x)))
print(str(fpath) ,fpath.exists())
python blankCharPathlib.py
path >>> ~/test\ blank\ folder  
~/test blank folder True
0
0
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?