BBH
-Biz Branding Hub-
投稿日 : 
2019/11/22
更新日 : 
2019/11/22

【python】フルパスからファイル名を抜き出す

pythonでフルパスからファイル名を抜き出すサンプルを紹介します。
folder1/folder2/test.txt → test.txt みたいなイメージです。

フルパスからファイル名を抜き出すサンプル.py

fullPaeh = '/RootFolder/Childfolder/GroundChildFolder/target.txt'
fileName = fullPaeh[fullPaeh.rfind('/') + 1:]
print(fileName)    # 出力結果:target.txt

rfind関数は、文字列中に引数で渡された文字列があるかを判定し、存在する場合は、その文字列が出現するインデックスを返します。
pythonでは他の多くのプログラムと同じように1文字目を0として扱うので、そこは注意が必要です。(※)

ちなみに、rfindで指定の文字列が見つからない場合は、-1を返します。
したがって、上記のサンプルだと「/」が見つからない場合はそのままフルパスを返すことになります。
ここはプログラムの仕様によって適切にエラーハンドリングしてください。


なぜ配列のインデックスは0から始まるのか?
一言でいうと、その方がコンピュータの構造に合っているからということになります。

配列の先頭は確保されたメモリのポインタが格納されています。
それ以降は、「先頭から何個ずれているか」を示しているようです。
例えば、2番目だったら先頭から1つずれているから、array[1]でアクセスできるというわけです。
こうすることで、先頭のポインタだけ覚えていれば後はそこからいくつずれるかを指定するだけで、求める配列の位置が特定できるわけですね。
コンピュータが扱いやすくするために0から始まっていて、そのために人間には直感的に理解しにくいようなルールになっているということみたいです。
なぜ配列は0からなの? | ソララボ アンテナ

Profile

管理人プロフィール

都内でITエンジニアをやってます。
変遷:中規模SES→独立系SIer→Webサービス内製開発
使用技術はその時々でバラバラですが、C#、AWSが長いです。
どちらかと言うとバックエンドより開発が多かったです。
顧客との折衝や要件定義、マネジメント(10名弱程度)の経験あり。
最近はJava+SpringBootがメイン。

Recommend