0
与えられたユーザー指定の文字列が単純なファイル/フォルダ名であるかどうかを確認しようとしています。 os.path.join()を使用してこの名前をプリセットのルートディレクトリに連結することを計画していますが、そのルートディレクトリの外側の任意の場所を横断しようとするパスを検出して禁止したいとします。Pythonでパスが単純なファイル/フォルダ名であるかどうかを確認する明確な方法はありますか?
たとえば、値 'track001.mp3'の文字列は問題なく、 'root_dir/track001.mp3'に解決されます。しかし、これらが検出され、禁止されるべきである。
'../other_root_dir/'
'/etc'
'/'
'~'
'subdir/inner_file'
os.path.listdirを使用して、受け入れ可能なものを列挙して照合するか、あなたの質問を理解できませんでしたか? – PYA
'〜'はなぜ受け入れられないでしょうか?これは、シェルで引用されていない場合のメタキャラクターに過ぎません。それは他のどこでもリテラルチルダです。 – duskwuff