PythonでPathやURLを取得する

 

sys.pathとpprintでモジュール検索パスを確認

import sys
import pprint

pprint.pprint(sys.path)

 

 

sys.pathでモジュール検索パスを確認

import sys

for path in sys.path:
    print(path)

 

 

PythonパッケージディレクトリのPath

import site

print(site.getsitepackages())

 

 

モジュール・パッケージのパスを確認

例:Django

import django

print(django.__file__)

 

 

実行中ファイルのフルパス

print(__file__)

 

 

URLの取得

from urllib.parse import urlparse, urlunparse, urljoin, parse_qsl
import os

#SCHEME http or https
scheme = os.environ.get('REQUEST_SCHEME', 'http')

#ドメイン名
server_name = os.environ.get('SERVER_NAME', 'localhost')

#ドメイン名までのURL
base_url = urlunparse((scheme, server_name, '', '', '', ''))
# base_url = f"{scheme}://{server_name}"  #←これでもいい

#ドメイン以下のURL
url_path = os.environ.get('REQUEST_URI', '/')

#カレントURL
current_url = urljoin(base_url, url_path)

#パラメーターをパース
parsed = urlparse(current_url)
params = dict(parse_qsl(parsed.query))
query = params.get('q', '')
page = params.get('page', '')

print(base_url)
print(url_path)
print(current_url)
print(parsed)
print(params)
print(f'検索語: {query}')
print(f'ページ番号: {page}')



#### レスポンス ####

https://example.com
/test/path.py?q=python&page=3
https://example.com/test/path.py?q=python&page=3
ParseResult(scheme='https', netloc='example.com', path='/test/path.py', params='', query='q=python&page=3', fragment='')
{'q': 'python', 'page': '3'}
検索語: python
ページ番号: 3