「Pythonにおけるパスの表現」
Pythonパス表現
ファイルパスを文字列で表現するのを避け、代わりにPathlibを使用すべき理由
ファイルシステムでの作業はプログラミングにおける最も単純なタスクの一つです。驚くべきことに、私たちの多くはまだ文字列でファイルパスを表現しようとするため、それを間違えることがあります。これは基本的に間違っており、おそらく既に多くの異なるPythonリポジトリで見たことのある最も一般的なアンチパターンの一つです。
今日の記事では、文字列(またはos
モジュール)を使用してファイルシステム上のパスを表現するのは良くない理由について説明します。さらに、ベストプラクティスについて説明し、pathlib
パッケージを使用してPythonでファイルパスを適切にコーディングする方法を実際に見てみましょう。さあ、始めましょう!
文字列を使用してパスを表現するのは良くない理由
異なるオペレーティングシステムは、ファイルシステム上のパスを表現する際に異なる命名規則を使用します。たとえば、Unixではスラッシュ/
をディレクトリセパレータとして使用し、Windowsではバックスラッシュ\
を使用します
# Unix(例:Linux、OSXなど)/home/this/is/a/path/to/a/directory# WindowsC:\home\this\is\a\path\to\a\directory
コードの移植性は、ソースコードを同じ動作で複数の異なる環境で実行できるようにするための原則のセットを指します。したがって、文字列でのパス表現では、ソースコードが実行されるオペレーティングシステムによって異なる方法でパスを処理しない限り、これは不可能です。
- 「生産性を最大化するための5つの最高のAIツール」
- 「複雑なエンジニアリング図面のためのOCRの使用」 「複雑なエンジニアリング図面のためのOCRの使用」という文になります
- AIにおけるブロックチェーンの包括的なレビュー
しかし、その場合でも、コードが乱雑で不必要に複雑になります。
# これは悪い習慣ですimport platformif platform.system() == 'Windows': filepath = 'C:\home\this\is\a\path\to\a\directory'else: # 例:OSXの場合は 'Darwin' または 'Linux' filepath = '/home/this/is/a/path/to/a/directory'
パスを表す文字列に対するさらなる操作も複雑になります。例えば、2つのパスを連結したい場合、単純な文字列の連結では無効なパスになる可能性があります。特に、1つ以上の文字列にスラッシュやバックスラッシュなどの特殊文字が含まれている場合です。
path_1 = '/this/is/a/path/'path_2 = '/another/path'# filepath = '/this/is/a/path//another/path'filepath = path_1 + path_2
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles