開発環境から本番サーバーへアップする場合など、リンク等が相対パスで書かれていた方がいい時も。
起点となるファイルorディレクトリから、相対パスを求める関数はこんな感じでしょうか。
import sys, os
from urlparse import urlparse, urlunparse
def relurl(absolute, origin):
a = urlparse(absolute)
o = urlparse(origin)
# ドメインが違う時、相対パスは考えにくいのでそのまま返却
if a.netloc != o.netloc:
return absolute
relative = os.path.relpath(a.path, os.path.dirname(o.path))
return urlunparse(('','',relative) + a[3:])
def main():
params = sys.argv
print relurl(params[1], params[2])
if __name__ == '__main__':
main()