split: 文字列の分割
str.split(sep)
sepを区切り文字として、単語を分割してリストにする。
区切り文字が指定されない場合は、スペース、タブ、改行文字列で分割される特殊なルールになる。
>>> "hello,world,foo,bar".split(",") ['hello', 'world', 'foo', 'bar'] >>> "hello,world, foo, bar".split(", ") >>> "hello world\tfoo\nbar".split() ['hello', 'world', 'foo', 'bar']
第2引数で区切り文字で分割する回数を指定することができる。
>>> "aaa,bbb,ccc".split(",", 1) #分割回数は1回に制限。('bbb,ccc'は分割されていない) ['aaa', 'bbb,ccc']
正規表現でのsplitの場合は、reモジュールを使用する。※ 正規表現split参照
>>> import re >>> re.split(r'[,:]', "a,b:c") ['a', 'b', 'c']
join: 文字列シーケンスの連結
sep.join(seq)
sepを区切り文字として、seqを連結してひとつの文字列にする。
>>> ":".join(["a", "b", "cde"]); 'a:b:cde'
シーケンス.joinではなく、区切り文字列.join(シーケンス)なので注意。
rsplit: 右から文字列の分割
rsplitは右側から文字列を指定回数分割する。
>>> "/path/to/foo/bar/hoge.txt".rsplit("/", 1) # 右から1回だけ分割。パスとファイル名に分割 ['/path/to/foo/bar', 'hoge.txt']
余談ですがファイル名とパスに分割する機能は、os.path.split() を使った方がよいです。