「Python」の版間の差分
ナビゲーションに移動
検索に移動
(同じ利用者による、間の19版が非表示) | |||
1行目: | 1行目: | ||
| [[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]] | [https://www.typea.info/blog/index.php/category/python/ ブログカテゴリ(python)] | | | [[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]] | [https://www.typea.info/blog/index.php/category/python/ ブログカテゴリ(python)] | | ||
− | {{amazon|4798163643 | + | {{amazon|4798163643}} |
==[[Python]]== | ==[[Python]]== | ||
====インストール==== | ====インストール==== | ||
*[[CentOS6にPython2.7をインストール]] | *[[CentOS6にPython2.7をインストール]] | ||
*[[Django インストール]] | *[[Django インストール]] | ||
+ | =====Macにインストール===== | ||
+ | ---- | ||
+ | *Homebrewのインストール | ||
+ | https://brew.sh/ | ||
+ | <pre> | ||
+ | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" | ||
+ | </pre> | ||
+ | *pyenv のインストール | ||
+ | <pre> | ||
+ | brew install pyenv | ||
+ | </pre> | ||
+ | *~/.bash_profileに追記 | ||
+ | <pre> | ||
+ | export PYENV_ROOT="$HOME/.pyenv" | ||
+ | export PATH="$PYENV_ROOT/bin:$PATH" | ||
+ | eval "$(pyenv init -)" | ||
+ | </pre> | ||
+ | |||
+ | *pythonバージョン確認 | ||
+ | <pre> | ||
+ | $ pyenv install --list | egrep '[ ]+3.*' | ||
+ | </pre> | ||
+ | *pythonインストール | ||
+ | <pre> | ||
+ | $ pyenv install 3.12.6 | ||
+ | </pre> | ||
+ | *以下のエラーの場合 | ||
+ | <pre> | ||
+ | The Python lzma extension was not compiled. Missing the lzma lib? | ||
+ | </pre> | ||
+ | xzライブラリのインストール | ||
+ | <pre> | ||
+ | brew install xz | ||
+ | </pre> | ||
+ | 再インストール | ||
+ | <pre> | ||
+ | $ 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 | ||
+ | </pre> | ||
+ | *使用バージョンの設定 | ||
+ | <pre> | ||
+ | pyenv versions | ||
+ | $ pyenv global 3.12.6 | ||
+ | </pre> | ||
====[[言語まとめ Python|言語まとめ]]==== | ====[[言語まとめ Python|言語まとめ]]==== | ||
90行目: | 136行目: | ||
|データベースの使用 | |データベースの使用 | ||
|[[Python 標準ライブラリ概観|sqlite3]] | |[[Python 標準ライブラリ概観|sqlite3]] | ||
+ | |- | ||
+ | |JSONエンコードとデコード | ||
+ | |[[Python 標準ライブラリ概観|json]] | ||
|- | |- | ||
|} | |} | ||
+ | |||
====[[Python ビルトインオブジェクト|ビルトインオブジェクト]]==== | ====[[Python ビルトインオブジェクト|ビルトインオブジェクト]]==== | ||
*[[Python ビルトインオブジェクト|ビルトインオブジェクト]] | *[[Python ビルトインオブジェクト|ビルトインオブジェクト]] | ||
145行目: | 195行目: | ||
==仮想環境== | ==仮想環境== | ||
===VirtualEnvを利用して[[Python]]の仮想環境を作成=== | ===VirtualEnvを利用して[[Python]]の仮想環境を作成=== | ||
+ | ---- | ||
+ | |||
===[[Python]] 3以降同梱されている=== | ===[[Python]] 3以降同梱されている=== | ||
+ | ---- | ||
*https://docs.python.jp/3/library/venv.html | *https://docs.python.jp/3/library/venv.html | ||
python3 -m venv ./envs/env01 | python3 -m venv ./envs/env01 | ||
+ | |||
+ | ./env/env01/Scrits/activate | ||
+ | |||
+ | |||
+ | |||
+ | ====エラー==== | ||
+ | ---- | ||
+ | *Ubuntu | ||
+ | <pre> | ||
+ | $ python3 -m venv ./env/env_ml | ||
+ | Failing command: ['/home/piroto/workspaces/python/env/env_ml/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip'] | ||
+ | </pre> | ||
+ | *対処 | ||
+ | <pre> | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | ===[[Visual Studio Code]]=== | ||
+ | ---- | ||
*[[Visual Studio Code]]の場合、Ctrl+Shift+Pで、Python:Select Interpreter を選択することで実行する仮想環境を選択できる。選択するとIDEの左下に表示される。 | *[[Visual Studio Code]]の場合、Ctrl+Shift+Pで、Python:Select Interpreter を選択することで実行する仮想環境を選択できる。選択するとIDEの左下に表示される。 | ||
+ | *settings.json に以下を追加 | ||
+ | <pre> | ||
+ | { | ||
+ | "python.pythonPath": "{virtual envで作成したパス}/bin/python3" | ||
+ | } | ||
+ | </pre> | ||
===それ以前=== | ===それ以前=== | ||
219行目: | 297行目: | ||
====[[Python CSVファイル]]==== | ====[[Python CSVファイル]]==== | ||
===書式=== | ===書式=== | ||
+ | |||
+ | ====文字列展開==== | ||
+ | *https://qiita.com/takechiyosw/items/27942ab481370fea604f | ||
+ | *f-string | ||
+ | v = "hoge" | ||
+ | print(f"content:{v}") | ||
+ | |||
+ | |||
====文字列を16進数に変換==== | ====文字列を16進数に変換==== | ||
print 'hoge'.encode('hex') | print 'hoge'.encode('hex') | ||
236行目: | 322行目: | ||
>>> '.'.join([str(int(x,2)) for x in "10101100.00011111.00010000.00100000".split(".")]) | >>> '.'.join([str(int(x,2)) for x in "10101100.00011111.00010000.00100000".split(".")]) | ||
'172.31.16.32' | '172.31.16.32' | ||
+ | |||
===ログ=== | ===ログ=== | ||
*[[Python 任意のファイルにログを出力する]] | *[[Python 任意のファイルにログを出力する]] | ||
241行目: | 328行目: | ||
====[[Python 組合せと順列の計算]]==== | ====[[Python 組合せと順列の計算]]==== | ||
====[[Python パスワード生成]]==== | ====[[Python パスワード生成]]==== | ||
+ | ===Path=== | ||
+ | ====Pathの最後の値を得る==== | ||
+ | *Python3 | ||
+ | <pre> | ||
+ | >>> import pathlib | ||
+ | >>> path = pathlib.PurePath('/a/b/c/d/e') | ||
+ | >>> path.name | ||
+ | 'e' | ||
+ | </pre> | ||
===[[その他]]=== | ===[[その他]]=== | ||
====[[Python help関数の使い方|help関数の使い方]]==== | ====[[Python help関数の使い方|help関数の使い方]]==== | ||
261行目: | 357行目: | ||
*raw_input を利用する | *raw_input を利用する | ||
number = int(raw_input("please input int:")) | number = int(raw_input("please input int:")) | ||
+ | =====コマンドパラメータの簡易解析==== | ||
+ | * --foo bar を、key(foo) value(barのリスト)に解析 | ||
+ | <pre> | ||
+ | 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) | ||
+ | </pre> | ||
===日本語のクエリパラメータ=== | ===日本語のクエリパラメータ=== | ||
287行目: | 403行目: | ||
*[[Python ユニコードエスケープをデコード]] | *[[Python ユニコードエスケープをデコード]] | ||
*[[Python 対話シェルへユニコードを文字として表示する]] | *[[Python 対話シェルへユニコードを文字として表示する]] | ||
+ | |||
+ | [[category:プログラミング言語]] |
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 矢木浩人