| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「Python」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の20版が非表示)
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}}
 
==[[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|言語まとめ]]====
89行目: 136行目:
 
|データベースの使用  
 
|データベースの使用  
 
|[[Python 標準ライブラリ概観|sqlite3]]
 
|[[Python 標準ライブラリ概観|sqlite3]]
 +
|-
 +
|JSONエンコードとデコード
 +
|[[Python 標準ライブラリ概観|json]]
 
|-
 
|-
 
|}
 
|}
 +
 
====[[Python ビルトインオブジェクト|ビルトインオブジェクト]]====
 
====[[Python ビルトインオブジェクト|ビルトインオブジェクト]]====
 
*[[Python ビルトインオブジェクト|ビルトインオブジェクト]]
 
*[[Python ビルトインオブジェクト|ビルトインオブジェクト]]
144行目: 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>
  
 
===それ以前===
 
===それ以前===
218行目: 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')
235行目: 322行目:
 
  &gt;&gt;&gt; '.'.join([str(int(x,2)) for x in  "10101100.00011111.00010000.00100000".split(".")])
 
  &gt;&gt;&gt; '.'.join([str(int(x,2)) for x in  "10101100.00011111.00010000.00100000".split(".")])
 
  '172.31.16.32'
 
  '172.31.16.32'
 +
 
===ログ===
 
===ログ===
 
*[[Python 任意のファイルにログを出力する]]
 
*[[Python 任意のファイルにログを出力する]]
240行目: 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関数の使い方]]====
260行目: 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>
  
 
===日本語のクエリパラメータ===
 
===日本語のクエリパラメータ===
286行目: 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のインストール

https://brew.sh/

/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

IDE

パッケージ管理

setuptools

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 用 バイナリパッケージ

仮想環境

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

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

文字化け