Locked History Attachments

Python/ReverseReference

逆引きリファレンス

Contents

  1. 基本構文
    1. Noneチェック - if value is None:
  2. 変数
    1. 変数が定義されているかを調べる - NameError
  3. 数値
    1. 数値を文字列に変換する - str(num)
  4. 文字列
    1. 文字数の取得 - len(string)
    2. 変数埋め込み文字列 - Template
    3. 文字列を数値に変換する - int(str)
    4. よく使う文字セットを取得する - string.*
  5. 日付/時間
    1. 現在時刻を取得 - datetime.datetime.now()
    2. 当日を取得 - datetime.datetime.now().date()
    3. フォーマットする - datetime.strftime()
    4. 前日と翌日の計算 - datetime.timedelta(days=1)
  6. リスト
    1. 要素の取得 - List[idx]
    2. 反復処理を行う - for value in List:
    3. 反復処理を行う(インデックス有) - for i, value in enumerate(List):
    4. 要素の追加 - List#append()
    5. 要素数の取得 - len(List)
  7. 辞書(ディクショナリ)
    1. 空の辞書を作成する - {}
    2. 要素を取得する - get(key)
    1. 型の取得 - type(arg)
  8. クラス
    1. スーパークラスのメソッドを呼び出す - SuperClass.method_name()
    2. クラス名の取得 - __class__.__name__
  9. I/O
    1. 標準入力から1行を読み込む - name = raw_input('Enter name: ')
    2. ディレクトリを作成する - os.mkdir('foo') / os.makedirs('foo/bar/poo')
  10. パス
    1. パスを取得する - sys.path
    2. 動的にパスを追加する - sys.path.append()
  11. システム
    1. カレントディレクトリの取得 - os.getcwd()
    2. システムコマンドの実行 - os.system()
    3. ファイルの削除 - os.remove()
    4. ファイルの改名 - os.rename()
  12. ネットワーク
    1. HTTP経由でデータ取得 - urllib.urlopen

基本構文

Noneチェック - if value is None:

if value is None: pass

変数

変数が定義されているかを調べる - NameError

try:
    print var
except NameError:
    print "not defined"

数値

数値を文字列に変換する - str(num)

文字列への変換には、組み込み関数のstr()を用いる。

str(100)

文字列

文字数の取得 - len(string)

len('abc123')

変数埋め込み文字列 - Template

passwd = 'admin123'
print 'passwd=%s'%passwd
print 'user=%s,passwd=%s'%('a.user', 'a.password')
print 'passwd=%(passwd)s'%{'passwd': passwd}
print 'passwd=%(passwd)s'%locals()
from string import Template
print Template('passwd=${passwd}').substitute({'passwd': passwd})
print Template('passwd=${passwd}').substitute(locals())

文字列を数値に変換する - int(str)

数値への変換には、組み込み関数のint()を用いる。

int('100')

よく使う文字セットを取得する - string.*

import string
string.lowercase
string.uppercase
string.letters
string.digits

日付/時間

現在時刻を取得 - datetime.datetime.now()

from datetime import datetime
print datetime.now()

当日を取得 - datetime.datetime.now().date()

from datetime import datetime
print datetime.now().date()

フォーマットする - datetime.strftime()

from datetime import datetime
print datetime.now().strftime('%Y%n%d%H%M%S')

前日と翌日の計算 - datetime.timedelta(days=1)

前月の末日を取得する

from datetime import date
import datetime
d = date(2009, 10, 1)
d - datetime.timedelta(days=1)

リスト

リストは[]で囲み、カンマ(,)で区切って表現する。

array = ['a', 'b', 'c']

要素の取得 - List[idx]

インデックスは0から開始

array = ['a', 'b', 'c']
array[0]
array[1]

要素数を超えたアクセスが行われると、IndexErrorが発生する。

反復処理を行う - for value in List:

for value in ['a', 'b', 'c']:
    print value

反復処理を行う(インデックス有) - for i, value in enumerate(List):

for i, value in enumerate(['a', 'b', 'c']):
        print i, value

要素の追加 - List#append()

['a', 'b', 'c'].append('d')

要素数の取得 - len(List)

len(['a', 'b', 'c'])

辞書(ディクショナリ)

空の辞書を作成する - {}

{}

要素を取得する - get(key)

例外を発生させずに要素を取得する場合は、get()メソッドを使用する

{}.get('key')

型の取得 - type(arg)

type(arg)

クラス

スーパークラスのメソッドを呼び出す - SuperClass.method_name()

class SuperClass(object):
  def method_name(self):
    pass
class SubClass(SuperClass):
  def do_something(self):
    SuperClass.method_name(self)

クラス名の取得 - __class__.__name__

some.__class__.__name__

I/O

標準入力から1行を読み込む - name = raw_input('Enter name: ')

name = raw_input('Enter name: ')

ディレクトリを作成する - os.mkdir('foo') / os.makedirs('foo/bar/poo')

import os
os.mkdir('foo')
# 再帰的に作成
os.makedirs('foo/bar/poo')

※makedirsのメソッド名注意

パス

パスを取得する - sys.path

import sys
print sys.path

動的にパスを追加する - sys.path.append()

import sys
sys.path.append('/path/to/module')

システム

カレントディレクトリの取得 - os.getcwd()

import os
print os.getcwd()

システムコマンドの実行 - os.system()

import os
os.system('sh xxx.sh')

ファイルの削除 - os.remove()

import os
os.remove(path) 

ファイルの改名 - os.rename()

import os
os.rename(path) 

ネットワーク

HTTP経由でデータ取得 - urllib.urlopen

from urllib import urlopen
out = urlopen('http://www.google.co.jp')
# Data Dump
print out.read()
# 1行のみ取得
print out.readline()
# リストとして複数行取得
print out.readlines(10)
# リストとして全行取得
print out.readlines()