2016-09-11 8 views
3

大量のファイルを使用するプログラムを作成しています。 Pythonはファイルパスの作り付けのクラスを備えていない、または1つは、(下記のような)ユーザーが実装する必要もありません:ファイル名のPython専用クラス

class FilePath: 
    def __init__(path): 
     shazam(path) 

    def shazam(self, path): 
     """ something happens, path is formatted, etc """ 
     self.formatted_path = foobar 

なぜそれが有用であろうか?

プログラムとそのデータが別のオペレーティングシステムにコピーされたとします。クラスは、起動時に別のパス区切り文字をサポートするように自身を変更することができます。

あなた自身で書いてみませんか?

誰かがすでに標準のPythonライブラリにクラスを作成している可能性があります。

+0

この宿題はありますか?それがあなたの質問にあると指定するべきです。 – Soviut

+0

@ソビエトいいえ、これは宿題ではありません。 – techydesigner

+0

os.path.abspathまたはos.nameを区別するために使用することはできませんか? –

答えて

2

Pythonには、ファイルシステムを扱うための複数のクロスプラットフォームモジュール、pathsおよびoperating systemがあります。

osモジュールには、具体的にはos.sep文字が含まれています。

os.path.join()は、OSを認識しており、パスを結合する際には適切な区切り文字を使用します。

さらに、os.path.normpath()は、任意のパスを取って、ネイティブOSがサポートするものにセパレータを変換します。

1

Python 3.4以降では、あなたが探しているようだと思われるpathlibがあります。もちろん、os.pathの関数もありますが、オブジェクト指向のアプローチではpathlibの方が適しています。

関連する問題