「Python」の版間の差分
ナビゲーションに移動
検索に移動
(同じ利用者による、間の25版が非表示) | |||
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 ライブラリ]] | | + | {{amazon|4798163643}} |
+ | ==[[Python]]== | ||
+ | ====インストール==== | ||
+ | *[[CentOS6にPython2.7をインストール]] | ||
+ | *[[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|言語まとめ]]==== |
− | *[言語まとめ Python] | + | *[[言語まとめ Python|言語まとめ]] |
− | ====[Python サンプルコード | + | ====[[Python サンプルコード|サンプルコード(ファイル、コレクション・・・)]]==== |
− | *[Python サンプルコード | + | *[[Python サンプルコード|サンプルコード(ファイル、コレクション・・・)]] |
− | *[Python CookBook | + | *[[Python CookBook|サンプルコード(CookBook)]] |
− | ====[Python サンプルコード オブジェクト指向 | + | ====[[Python サンプルコード オブジェクト指向|サンプルコード(オブジェクト指向)]]==== |
− | *[Python サンプルコード オブジェクト指向 | + | *[[Python サンプルコード オブジェクト指向|サンプルコード(オブジェクト指向)]] |
− | ====[Python 標準ライブラリ概観] | + | ====[[Python 標準ライブラリ概観|標準ライブラリ概観]]==== |
=====詳細===== | =====詳細===== | ||
− | *[Python 標準ライブラリ概観] | + | *[[Python 標準ライブラリ概観|標準ライブラリ概観]] |
=====概要===== | =====概要===== | ||
23行目: | 69行目: | ||
|- | |- | ||
|OSインターフェース | |OSインターフェース | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|os]] |
|- | |- | ||
|ファイルのワイルドカード | |ファイルのワイルドカード | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|glob]] |
|- | |- | ||
|コマンドライン引数 | |コマンドライン引数 | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|sys]] |
|- | |- | ||
|標準エラーを出力しプログラムを終了 | |標準エラーを出力しプログラムを終了 | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|sys]] |
|- | |- | ||
|正規表現を利用する | |正規表現を利用する | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|re]] |
|- | |- | ||
|数学 | |数学 | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|math]] |
|- | |- | ||
|URL による任意のリソースへのアクセス | |URL による任意のリソースへのアクセス | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|urllib]] |
|- | |- | ||
|インターネットアクセス | |インターネットアクセス | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|urllib2]] |
|- | |- | ||
|日付と時刻 | |日付と時刻 | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|date、datetime、time]] |
|- | |- | ||
|時間計算 | |時間計算 | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|time]] |
|- | |- | ||
|データ圧縮 | |データ圧縮 | ||
56行目: | 102行目: | ||
|- | |- | ||
|パフォーマンス計測 | |パフォーマンス計測 | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|timeit]] |
|- | |- | ||
|品質管理 | |品質管理 | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|doctest]] |
|- | |- | ||
|出力書式 | |出力書式 | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|repr、pprint、textwrap、locale]] |
|- | |- | ||
|テンプレート | |テンプレート | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|Template]] |
|- | |- | ||
|シリアライズ | |シリアライズ | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|pickle]] |
|- | |- | ||
|バイナリデータレコードレイアウトでの作業 | |バイナリデータレコードレイアウトでの作業 | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|struct]] |
|- | |- | ||
|オブジェクトのコピー | |オブジェクトのコピー | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|copy]] |
|- | |- | ||
|マルチスレッド | |マルチスレッド | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|threading]] |
|- | |- | ||
|ロギング | |ロギング | ||
− | |[Python 標準ライブラリ概観] | + | |[[Python 標準ライブラリ概観|logging]] |
|- | |- | ||
|XML Dom | |XML Dom | ||
− | |[Python 標準ライブラリ概観 | + | |[[Python 標準ライブラリ概観|xml.dom]] |
|- | |- | ||
|XML ElementTree | |XML ElementTree | ||
− | |[Python 標準ライブラリ概観 | + | |[[Python 標準ライブラリ概観|xml.etree]] |
|- | |- | ||
|データベースの使用 | |データベースの使用 | ||
− | |[Python 標準ライブラリ概観] [ | + | |[[Python 標準ライブラリ概観|sqlite3]] |
+ | |- | ||
+ | |JSONエンコードとデコード | ||
+ | |[[Python 標準ライブラリ概観|json]] | ||
|- | |- | ||
|} | |} | ||
− | ====[Python ビルトインオブジェクト] | + | |
− | *[Python ビルトインオブジェクト] | + | ====[[Python ビルトインオブジェクト|ビルトインオブジェクト]]==== |
− | ====Python サンプルコード==== | + | *[[Python ビルトインオブジェクト|ビルトインオブジェクト]] |
+ | ====[[Python サンプルコード]]==== | ||
=====全般===== | =====全般===== | ||
− | *[Python サンプルコード | + | *[[Python サンプルコード|サンプルコード(ファイル、コレクション・・・)]] |
− | *[Python サンプルコード オブジェクト指向 | + | *[[Python サンプルコード オブジェクト指向|サンプルコード(オブジェクト指向)]] |
− | *[Python 組込関数] | + | *[[Python 組込関数|組込関数]] |
=====サンプル===== | =====サンプル===== | ||
− | *Python ファイル読み書き | + | *[[Python ファイル読み書き]] |
− | *Python ゼロ埋め | + | *[[Python ゼロ埋め]] |
− | *Python 3項演算子 | + | *[[Python 3項演算子]] |
− | *Python 環境変数PATHからファイル検索 | + | *[[Python 環境変数PATHからファイル検索]] |
− | *Python ファイルを削除 | + | *[[Python ファイルを削除]] |
− | *Python 数値の桁数を得る | + | *[[Python 数値の桁数を得る]] |
====[http://python.secsup.org/ Python Osmosis]==== | ====[http://python.secsup.org/ Python Osmosis]==== | ||
− | *[Python if for | + | *[[Python if for|Episode 6: Flow Control, if and for Statements]] |
− | *[Python Range | + | *[[Python Range|Episode 7: The Range Function]] |
− | *[Python Decimal | + | *[[Python Decimal|Episode 50: Standard Library: Decimal Floating Point Arithmetic]] |
+ | |||
==IDE== | ==IDE== | ||
− | *Python IDEにて矢印キーでヒストリー表示 | + | *[[Python IDEにて矢印キーでヒストリー表示]] |
− | *Python IDEをCentOSで利用する | + | *[[Python IDEをCentOSで利用する]] |
==パッケージ管理== | ==パッケージ管理== | ||
===setuptools=== | ===setuptools=== | ||
*http://peak.telecommunity.com/DevCenter/setuptools | *http://peak.telecommunity.com/DevCenter/setuptools | ||
*https://pypi.python.org/pypi/setuptools | *https://pypi.python.org/pypi/setuptools | ||
− | *CentOS6にPython2.7をインストール | + | *[[CentOS6にPython2.7をインストール]] |
− | ====Windows==== | + | ====[[Windows]]==== |
=====上記ページからインストーラをダウンロードして実行(2.7の例)===== | =====上記ページからインストーラをダウンロードして実行(2.7の例)===== | ||
setuptools-0.6c11.win32-py2.7.exe | setuptools-0.6c11.win32-py2.7.exe | ||
=====Power Shell 3以降===== | =====Power Shell 3以降===== | ||
− | PS C:\WINDOWS\system32> (Invoke- | + | PS C:\WINDOWS\system32> (Invoke-Web[[R]]equest https://bootstrap.pypa.io/ez_setup.py).Content | python - |
=====PATHに追加(2.7の例)===== | =====PATHに追加(2.7の例)===== | ||
− | C:\ | + | C:\[[Python]]27\Scripts |
=====実行例===== | =====実行例===== | ||
− | c:\work\python>easy_install | + | c:\work\python>easy_install [[vi]]rtualenv |
=====プロキシを利用している場合、以下を環境変数に設定===== | =====プロキシを利用している場合、以下を環境変数に設定===== | ||
− | + | [[HTTP]]_PROXY=http://プロキシサーバ:ポート | |
− | ====Windows PIPを利用する==== | + | ====[[Windows]] PIPを利用する==== |
*[http://www.pip-installer.org/en/latest/ PIP] | *[http://www.pip-installer.org/en/latest/ PIP] | ||
− | *Python WindowsにPIPをインストール | + | *[[Python WindowsにPIPをインストール]] |
*[http://www.lfd.uci.edu/~gohlke/pythonlibs Unofficial Windows Binaries for Python Extension Packages] | *[http://www.lfd.uci.edu/~gohlke/pythonlibs Unofficial Windows Binaries for Python Extension Packages] | ||
− | ====Windows 用 バイナリパッケージ==== | + | ====[[Windows]] 用 バイナリパッケージ==== |
*http://www.lfd.uci.edu/~gohlke/pythonlibs/ | *http://www.lfd.uci.edu/~gohlke/pythonlibs/ | ||
*[http://typea.info/blg/glob/2015/09/windows-virtualenv-python27-pip-wheel-scipywindows.html Windows で VirtualEnv の Python2.7 に pip と wheel を使って コンパイルエラーが発生するパッケージ(例 scipy)をWindows用バイナリ提供サイトから入手してインストールする] | *[http://typea.info/blg/glob/2015/09/windows-virtualenv-python27-pip-wheel-scipywindows.html Windows で VirtualEnv の Python2.7 に pip と wheel を使って コンパイルエラーが発生するパッケージ(例 scipy)をWindows用バイナリ提供サイトから入手してインストールする] | ||
==仮想環境== | ==仮想環境== | ||
− | === | + | ===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 / | + | 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の左下に表示される。 | ||
+ | *settings.json に以下を追加 | ||
+ | <pre> | ||
+ | { | ||
+ | "python.pythonPath": "{virtual envで作成したパス}/bin/python3" | ||
+ | } | ||
+ | </pre> | ||
===それ以前=== | ===それ以前=== | ||
− | ====CentOS==== | + | ====[[CentOS]]==== |
*[http://typea.info/blg/glob/2015/01/aws-elastic-beanstalk-django-centos65-pydev1-django.html Virtualenv のインストールと起動] | *[http://typea.info/blg/glob/2015/01/aws-elastic-beanstalk-django-centos65-pydev1-django.html Virtualenv のインストールと起動] | ||
− | ====Windows==== | + | ====[[Windows]]==== |
=====インストール===== | =====インストール===== | ||
<blockquote>上記 パッケージ管理 を参照し、easy_install を利用出来るようにしておく</blockquote> | <blockquote>上記 パッケージ管理 を参照し、easy_install を利用出来るようにしておく</blockquote> | ||
− | c:\easy_install | + | c:\easy_install [[vi]]rtualenv |
=====ワークスペースの作成===== | =====ワークスペースの作成===== | ||
− | c:\work\python>python -m | + | c:\work\python>python -m [[vi]]rtualenv env |
New python executable in env\Scripts\python.exe | New python executable in env\Scripts\python.exe | ||
Installing setuptools................done. | Installing setuptools................done. | ||
171行目: | 251行目: | ||
=====Tclライブラリが見つからない===== | =====Tclライブラリが見つからない===== | ||
− | *http://typea.info/blg/glob/2015/07/python-windows- | + | *http://typea.info/blg/glob/2015/07/python-windows-[[vi]]rtualenv-tcl.html |
− | =====Python VirtualEnvでIDLEを利用する===== | + | =====[[Python]] VirtualEnvでIDLEを利用する===== |
− | *http://typea.info/blg/glob/2015/09/python- | + | *http://typea.info/blg/glob/2015/09/python-[[vi]]rtualen[[vi]]dle.html |
− | ====Ubuntu==== | + | ====[[Ubuntu]]==== |
=====インストール===== | =====インストール===== | ||
− | $ sudo apt-get install python- | + | $ sudo apt-get install python-[[vi]]rtualenv |
− | ===WinPython=== | + | ===[[WinPython]]=== |
− | *WinPython | + | *[[WinPython]] |
==フレームワーク== | ==フレームワーク== | ||
===Web=== | ===Web=== | ||
− | ====Django==== | + | ====[[Django]]==== |
− | *Django | + | *[[Django]] |
− | ====Google App Engine==== | + | ====[[Google App Engine]]==== |
− | *Google App Engine | + | *[[Google App Engine]] |
− | ===O/ | + | ===O/[[R]]マッパー=== |
− | ====SQLAlchemy==== | + | ====[[SQLAlchemy]]==== |
− | *SQLAlchemy | + | *[[SQLAlchemy]] |
*[http://omake.accense.com/static/doc-ja/sqlalchemy/ SQLAlchemy 0.6.5 ドキュメント (和訳)] | *[http://omake.accense.com/static/doc-ja/sqlalchemy/ SQLAlchemy 0.6.5 ドキュメント (和訳)] | ||
− | ===プラグイン=== | + | ===[[プラグイン]]=== |
− | ====PyDev==== | + | ====[[PyDev]]==== |
− | *PyDev | + | *PyDev [[Eclipse]]プラグイン |
− | ==Python ライブラリ== | + | ==[[Python ライブラリ]]== |
− | *Python ライブラリ | + | *[[Python ライブラリ]] |
===デバッグ=== | ===デバッグ=== | ||
202行目: | 282行目: | ||
===GUI=== | ===GUI=== | ||
− | *PyQt | + | *[[PyQt]] |
==実践== | ==実践== | ||
− | ===自然言語処理=== | + | ===[[自然言語処理]]=== |
− | *自然言語処理 | + | *[[自然言語処理]] |
*Python NLTK(Natural Language Toolkit) | *Python NLTK(Natural Language Toolkit) | ||
*Python MeCab(日本語形態素解析) | *Python MeCab(日本語形態素解析) | ||
− | ==Tips== | + | ==[[Tips]]== |
− | ===文字コード=== | + | ===[[文字コード]]=== |
− | ====[Python ファイルの文字コード] | + | ====[[Python ファイルの文字コード|ファイルの文字コード]]==== |
− | ====[Python URLエンコード] | + | ====[[Python URLエンコード|URLエンコード]]==== |
− | ====Python UnicodeEncodeError の対処==== | + | ====[[Python UnicodeEncodeError の対処]]==== |
− | ====Python ユニコードエスケープをデコード==== | + | ====[[Python ユニコードエスケープをデコード]]==== |
− | ====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') | ||
print '686f6765'.decode('hex') | print '686f6765'.decode('hex') | ||
+ | |||
+ | ====シフトIN/OUTを変換==== | ||
+ | title = title.replace(b'\x0e'.decode(),"") | ||
+ | title = title.replace(b'\x0f'.decode(),"") | ||
+ | |||
====2進数文字列を10進数に変換==== | ====2進数文字列を10進数に変換==== | ||
>>> int('10101100',2) | >>> int('10101100',2) | ||
229行目: | 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 任意のファイルにログを出力する]] |
===サンプル=== | ===サンプル=== | ||
− | ====Python 組合せと順列の計算==== | + | ====[[Python 組合せと順列の計算]]==== |
− | ====Python パスワード生成==== | + | ====[[Python パスワード生成]]==== |
− | ===その他=== | + | ===Path=== |
− | ====[Python help関数の使い方] | + | ====Pathの最後の値を得る==== |
− | *Python help関数の使い方 | + | *Python3 |
+ | <pre> | ||
+ | >>> import pathlib | ||
+ | >>> path = pathlib.PurePath('/a/b/c/d/e') | ||
+ | >>> path.name | ||
+ | 'e' | ||
+ | </pre> | ||
+ | ===[[その他]]=== | ||
+ | ====[[Python help関数の使い方|help関数の使い方]]==== | ||
+ | *[[Python help関数の使い方]] | ||
====プロパティを持っているか==== | ====プロパティを持っているか==== | ||
hasattr(インスタンス,プロパティ名) | hasattr(インスタンス,プロパティ名) | ||
− | ==== | + | ====[[正規表現]]による分割==== |
*re.split を利用 | *re.split を利用 | ||
>>> import re | >>> import re | ||
246行目: | 349行目: | ||
['this', 'is', 'a', 'pen', ''] | ['this', 'is', 'a', 'pen', ''] | ||
− | ==== | + | ====[[正規表現]]による置換==== |
*re.sub(pattern, repl, string, count=0, flags=0) を利用する | *re.sub(pattern, repl, string, count=0, flags=0) を利用する | ||
>>> s = r'AaBbCc' | >>> s = r'AaBbCc' | ||
254行目: | 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> | ||
===日本語のクエリパラメータ=== | ===日本語のクエリパラメータ=== | ||
260行目: | 383行目: | ||
url = r'https://maps.googleapis.com/maps/api/place/nearbysearch/json?%s' | url = r'https://maps.googleapis.com/maps/api/place/nearbysearch/json?%s' | ||
queries = { | queries = { | ||
− | 'key': | + | 'key':GOOGLE_API_S[[R]]VE[[R]]_KEY, |
'location':'35.1814464,136.906398', | 'location':'35.1814464,136.906398', | ||
'radius':'500', | 'radius':'500', | ||
272行目: | 395行目: | ||
print l | print l | ||
− | ===文字化け=== | + | ===[[文字化け]]=== |
− | *Python 対話シェルへユニコードを文字として表示する | + | *[[Python 対話シェルへユニコードを文字として表示する]] |
− | *PyScripter 日本語ファイルエラーの対応 | + | *[[PyScripter 日本語ファイルエラーの対応]] |
− | *Python URLエンコード | + | *[[Python URLエンコード]] |
− | *Python UnicodeEncodeError の対処 | + | *[[Python UnicodeEncodeError の対処]] |
− | *Python ファイルの文字コード | + | *[[Python ファイルの文字コード]] |
− | *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 矢木浩人