逆引きリファレンス
基本構文
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()
