「Python」の版間の差分
ナビゲーションに移動
検索に移動
20行目: | 20行目: | ||
export PYENV_ROOT="$HOME/.pyenv" | export PYENV_ROOT="$HOME/.pyenv" | ||
export PATH="$PYENV_ROOT/bin:$PATH" | export PATH="$PYENV_ROOT/bin:$PATH" | ||
− | eval "$(pyenv init-)" | + | eval "$(pyenv init -)" |
</pre> | </pre> | ||
2024年9月17日 (火) 08:14時点における最新版
| Python ライブラリ | サンプルコード | Python サンプルコード | まとめ | 言語まとめ Python | 標準ライブラリ | Python 標準ライブラリ概観 | ライブラリ | Django | Flask | Pyramid | Zope | IronPython | Google App Engine | Pillow | Python Imaging Library | Beautiful Soup | Python NumPy | Python matplotlib | Python Win32 Extensions | pyExcelerator | Jython | PyDev | PyQt | PyScripter | ブログカテゴリ(python) |
目次
Python
インストール
Macにインストール
- Homebrewのインストール
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- pyenv のインストール
brew install pyenv
- ~/.bash_profileに追記
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)"
- pythonバージョン確認
$ pyenv install --list | egrep '[ ]+3.*'
- pythonインストール
$ pyenv install 3.12.6
- 以下のエラーの場合
The Python lzma extension was not compiled. Missing the lzma lib?
xzライブラリのインストール
brew install xz
再インストール
$ pyenv uninstall 3.12.6 pyenv: remove /Users/piroto/.pyenv/versions/3.12.6? [y|N] y pyenv: 3.12.6 uninstalled $ pyenv install 3.12.6
- 使用バージョンの設定
pyenv versions $ pyenv global 3.12.6
言語まとめ
サンプルコード(ファイル、コレクション・・・)
サンプルコード(オブジェクト指向)
標準ライブラリ概観
詳細
概要
処理内容 | 標準ライブラリ |
---|---|
OSインターフェース | os |
ファイルのワイルドカード | glob |
コマンドライン引数 | sys |
標準エラーを出力しプログラムを終了 | sys |
正規表現を利用する | re |
数学 | math |
URL による任意のリソースへのアクセス | urllib |
インターネットアクセス | urllib2 |
日付と時刻 | date、datetime、time |
時間計算 | time |
データ圧縮 | zlib |
パフォーマンス計測 | timeit |
品質管理 | doctest |
出力書式 | repr、pprint、textwrap、locale |
テンプレート | Template |
シリアライズ | pickle |
バイナリデータレコードレイアウトでの作業 | struct |
オブジェクトのコピー | copy |
マルチスレッド | threading |
ロギング | logging |
XML Dom | xml.dom |
XML ElementTree | xml.etree |
データベースの使用 | sqlite3 |
JSONエンコードとデコード | json |
ビルトインオブジェクト
Python サンプルコード
全般
サンプル
Python Osmosis
- Episode 6: Flow Control, if and for Statements
- Episode 7: The Range Function
- Episode 50: Standard Library: Decimal Floating Point Arithmetic
IDE
パッケージ管理
setuptools
- http://peak.telecommunity.com/DevCenter/setuptools
- https://pypi.python.org/pypi/setuptools
- CentOS6にPython2.7をインストール
Windows
上記ページからインストーラをダウンロードして実行(2.7の例)
setuptools-0.6c11.win32-py2.7.exe
Power Shell 3以降
PS C:\WINDOWS\system32> (Invoke-WebRequest https://bootstrap.pypa.io/ez_setup.py).Content | python -
PATHに追加(2.7の例)
C:\Python27\Scripts
実行例
c:\work\python>easy_install virtualenv
プロキシを利用している場合、以下を環境変数に設定
HTTP_PROXY=http://プロキシサーバ:ポート
Windows PIPを利用する
Windows 用 バイナリパッケージ
- http://www.lfd.uci.edu/~gohlke/pythonlibs/
- Windows で VirtualEnv の Python2.7 に pip と wheel を使って コンパイルエラーが発生するパッケージ(例 scipy)をWindows用バイナリ提供サイトから入手してインストールする
仮想環境
VirtualEnvを利用してPythonの仮想環境を作成
Python 3以降同梱されている
python3 -m venv ./envs/env01
./env/env01/Scrits/activate
エラー
- Ubuntu
$ python3 -m venv ./env/env_ml Failing command: ['/home/piroto/workspaces/python/env/env_ml/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']
- 対処
Visual Studio Code
- Visual Studio Codeの場合、Ctrl+Shift+Pで、Python:Select Interpreter を選択することで実行する仮想環境を選択できる。選択するとIDEの左下に表示される。
- settings.json に以下を追加
{ "python.pythonPath": "{virtual envで作成したパス}/bin/python3" }
それ以前
CentOS
Windows
インストール
<blockquote>上記 パッケージ管理 を参照し、easy_install を利用出来るようにしておく</blockquote>
c:\easy_install virtualenv
ワークスペースの作成
c:\work\python>python -m virtualenv env New python executable in env\Scripts\python.exe Installing setuptools................done. Installing pip...................done.
仮想環境の実行
- Scripts\activate の実行
c:\work\python>cd env\Scripts c:\work\python\env\Scripts>activate (env) c:\work\python\env\Scripts>
仮想環境の停止
- Scripts\deactivate の実行
(env) c:\work\python\env\Scripts>deactivate
Tclライブラリが見つからない
Python VirtualEnvでIDLEを利用する
Ubuntu
インストール
$ sudo apt-get install python-virtualenv
WinPython
フレームワーク
Web
Django
Google App Engine
O/Rマッパー
SQLAlchemy
プラグイン
PyDev
- PyDev Eclipseプラグイン
Python ライブラリ
デバッグ
GUI
実践
自然言語処理
- 自然言語処理
- Python NLTK(Natural Language Toolkit)
- Python MeCab(日本語形態素解析)
Tips
文字コード
ファイルの文字コード
URLエンコード
Python UnicodeEncodeError の対処
Python ユニコードエスケープをデコード
Python CSVファイル
書式
文字列展開
v = "hoge" print(f"content:{v}")
文字列を16進数に変換
print 'hoge'.encode('hex') print '686f6765'.decode('hex')
シフトIN/OUTを変換
title = title.replace(b'\x0e'.decode(),"") title = title.replace(b'\x0f'.decode(),"")
2進数文字列を10進数に変換
>>> int('10101100',2) 172
IPアドレスを2進数で表示
>>> "{0:08b}.{1:08b}.{2:08b}.{3:08b}".format(172,31,16,0) '10101100.00011111.00010000.00000000'
- 戻す
>>> '.'.join([str(int(x,2)) for x in "10101100.00011111.00010000.00100000".split(".")]) '172.31.16.32'
ログ
サンプル
Python 組合せと順列の計算
Python パスワード生成
Path
Pathの最後の値を得る
*Python3
>>> import pathlib >>> path = pathlib.PurePath('/a/b/c/d/e') >>> path.name 'e'
その他
help関数の使い方
プロパティを持っているか
hasattr(インスタンス,プロパティ名)
正規表現による分割
- re.split を利用
>>> import re >>> re.split('[ \t\n\.\,]', 'this is\ta\npen.') ['this', 'is', 'a', 'pen', ]
正規表現による置換
- re.sub(pattern, repl, string, count=0, flags=0) を利用する
>>> s = r'AaBbCc' >>> re.sub(r'[a-z]',r,s) 'ABC'
ユーザーからの入力を得る
- raw_input を利用する
number = int(raw_input("please input int:"))
=コマンドパラメータの簡易解析
- --foo bar を、key(foo) value(barのリスト)に解析
import sys def make_dict_from_args(args): dict = {} key = None for arg in args: if arg.startswith('--'): key = arg[2:] else: val = dict.get(key) if not val: val = [] val.append(arg) dict[key] = val return dict if __name__ == "__main__": args = make_dict_from_args(sys.argv)
日本語のクエリパラメータ
import urllib import urllib2 url = r'https://maps.googleapis.com/maps/api/place/nearbysearch/json?%s' queries = { 'key':GOOGLE_API_SRVER_KEY, 'location':'35.1814464,136.906398', 'radius':'500', 'keyword':u'まんが喫茶'.encode('utf-8') } data = urllib.urlencode(queries) req = url % data print req response = urllib2.urlopen(req) for l in response: print l
文字化け
© 2006 矢木浩人