PythonでURLからファイル名を取得してみる

はじめましての方ははじめまして。Aliceです。
簿記3級試験も終わったので、またはてなで記事かこうかと思い、このブログを作りました。ブログタイトルは適当です。

で、このブログでは主にPythonというプログラミング言語のテクニックを紹介していきたいと思います。自分はまだGAE進出もしてない糞プログラマですけれども。

さて、本題に入ります。
今回は、「PythonでURLからファイル名を取得する」というテーマです。
ローカルのディレクトリの中にあるファイルは適当にOSモジュールとかを使えば取得できますが。URLからファイル名を取得するのは少しテクが必要です。


** Pythonで文字列を分割する **


まず、URLからファイルを取得するには、なんといってもそのURLを分割させることが必要です。
そこで、Pythonsplit関数を使います。
まず、どう使うかをみてみます。


>>> url = "http://www.sample.jp/sample/sample/sample.jpg"
>>> list = url.split("/")
>>> list
['http:', '', 'www.google.co.jp', 'sample', 'sample', 'sample.jpg']
このように、split(文字)で、その文字によって文字列を分割することができます。
そして、分割した文字列たちはご丁寧にリストにいれてくれます。
ここまでくれば、もうカンの良い人は見えてくると思います。

** リストの最後の要素を変数にする **

先ほどのリストの一番最後の要素には、そのURLが示すファイル名があります。
この要素を変数に代入、もしくは出力することによって、URLからファイル名を取得することができます。
以下、やりかたです。


>>> fname = list[len(list)-1]
>>> fname
'sample.jpg'
なにをしているかというと、
「リストの数に1を引いた数の要素を代入」ということをしています。
リストの数(要素数)は、

>>> len(list)
とするとでてきます。
ところが、Pythonのリストの要素数は0から始まっているので、要素数(len(list))で指定すると、エラーが出ます。
なのでその要素数から1を引いた数を指定すると、うまく「要素の一番最後」を引き出せることが出来ます。
このようにして、URLからファイル名を取得することができます。
もし、文字型にするのであれば、

>>> str(len(list))
でできます。

さてー、どうでしたでしょうか。
正直、自分はこのような「人に教える形」のブログを書くのは初めてなので、少々不安等もありますが、
今後も頑張って続けていこうと思います。

** 次回予告 **
次回は、これの応用で、URLからドメイン名を取得する記事を書いてみようかなと思います。
簡単なので、ぜひ自分でやってみてください!
以上、Aliceでした。

** 追記 ***
list[-1]でもいけるようです。
@b0r0njiさんありがとうございました!