パスのターゲットにファイルを作成せずに、パスがPythonで有効かどうかを確認します
パス(ディレクトリとファイル名を含む)があります。 ファイル名が有効かどうかをテストする必要があります。たとえば、ファイルシステムでそのような名前のファイルを作成できるかどうかを確認します。 ファイル名にはいくつかのUnicode文字が含まれています。 パスのディレクトリセグメントが有効でアクセス可能であると想定するのは安全です(私は質問をより一般的に適用できるようにしようとしていました、そして明らかに私は行き過ぎです)。 私は非常に私がない限り、何をエスケープする必要がありますする必要はありません持っています。 私が扱っているサンプル文字のいくつかを投稿しますが、どうやらそれらはスタック交換システムによって自動的に削除されます。とにかく、私はのような標準のユニコードエンティティを保持öし、ファイル名で無効なものだけをエスケープしたいと思います。 これがキャッチです。パスのターゲットにファイルがすでに存在する場合と存在しない場合があります。そのファイルが存在する場合は保持する必要があり、存在しない場合はファイルを作成しない必要があります。 基本的に、書き込み用のパスを実際に開かずにパスに書き込むことができるかどうかを確認したいと思います(そして、通常は自動ファイル作成/ファイルクローバーが必要です)。 など: try: open(filename, 'w') except OSError: # handle error here ここから 触れたくない既存のファイル(そこにある場合)を上書きするか、そうでない場合はそのファイルを作成するため、受け入れられません。 私は私ができることを知っています: if not os.access(filePath, os.W_OK): try: open(filePath, 'w').close() os.unlink(filePath) except OSError: # handle error here しかし、それはでファイルを作成しfilePath、それを私はしなければならないでしょうos.unlink。 結局、6行か7行を費やしてos.isvalidpath(filePath)、同じくらい単純なことをする必要があるようです。 余談ですが、(少なくとも)WindowsとMacOSで実行するにはこれが必要なので、プラットフォーム固有のものは避けたいと思います。 「