2014年12月15日月曜日

[Python]pythonで複数の任意の文字をまとめて除去する

replaceや正規表現も便利なのですが、translate()を使うと楽です。

:(コロン)と[](カッコ)を除去する場合
In [1]: mystr = "seq:100[hoge]"

In [2]: mystr.translate(str.maketrans("", "", ":[]"))
Out[2]: 'seq100hoge'  

maketransの引数の数によって置換えにしたりできるのですが、
ひとまず除去の場合は3番目の引数に文字を指定しておくと
それらを取り除くという挙動になるようです。

私はwin32com.clientでExcelを操作するスクリプトを書いた時に、
シート名に指定できない文字(: \ [ ] / *)を除去するのに使いました。

他にも色々使えそうですね。

0 件のコメント:

コメントを投稿