やりかた
パスはsys.argv[1]で実行時に第一引数に入れる文字列を使う仕様で書いてます。
import sys,os
sp = os.sep#セパレータ
dirpath = sys.argv[1]
print("FullPath :",dirpath)
print("file name Exclude :",dirpath[dirpath.rfind(sp)+1:])
Code language: Python (python)
os.sepはそのOSで使われるセパレータを返す。この書き方 にするとLinuxだろうがWindowsだろうが悩まないのでおすすめ。
実行結果
引数に”/home/user/test.txt”を与えて実行してみる
$ python3 test.py /home/user/test.txt
/home/user/test.txt
test.txt
仕組み
使ったのはスライスという操作。文字列が入った変数をdirpath[N:N]的な感じ(Nは文字列の始点と終点を指定する)で操作して文字列が抽出できる。rfindで右から見た時に最初に出てくるセパレータの位置を特定して、そこを始点に文字列の最後まで抽出するって仕組み。ちなみに+1がなかったらセパレータ本体の位置を含んでしまうので/test.txtとなってしまう。