Pythonでファイル名を名前部分と拡張子に分ける
Windowsではファイル名の多くはxxxxxx.zzzのようにドットを拡張子を表現するために1つだけ使うことが多いと思います。 ところが、最近はxxxxxx.yy.zzzのように複数のドットをファイル名に含むパターンが多くなりました。 このファイル名の文字列から、名前部分と拡張子を別々に取り出してみます。
ファイル名の名前部分と拡張子はドットで区切られるのだから、splitで分ければ良いのではないかと考えるのですが、単純にドットを区切りにしてsplitすると名前部分に含まれるドットでも分割されてしまいます。
目次
rsplitメソッドで文字列を分割する
splitメソッドに似たメソッドでrsplitというメソッドがあります。 これは、文字列の右側から順に区切り文字を探して分割してくれます。ですから、文字列の一番右にあるドットで2分割するように指定すれば、ファイルの名前部分と拡張子を分けて得られます。
L = S.rsplit(sep, maxsplit)
変数 |
内容 |
---|---|
S |
ファイル名 |
sep |
区切り文字。名前と拡張子を分割するので、ドットを指定する。 |
maxsplit |
分割する区切り文字の数。名前と拡張子の2つに分けるので、区切り文字は1つ。 |
L |
分割された文字列のリスト |
rsplitで分割する実施例
試してみました。
>>> S = 'a.b.c.d'
>>> S.rsplit('.',0)
['a.b.c.d']
>>> S.rsplit('.',1)
['a.b.c', 'd']
>>> S.rsplit('.',2)
['a.b', 'c', 'd']
>>> S.rsplit('.',3)
['a', 'b', 'c', 'd']
maxsplitを1にしたら、名前と拡張子に分割できてますね。
公開日
広告