raw文字列

広告

エスケープシーケンスは便利な機能ですが、エスケープシーケンスを無効にしたい場合もあります。このような場合にはraw文字列を使うことでエスケープシーケンスを無効にすることが出来ます。

r"文字列"
r'文字列'
R"文字列"
R'文字列'

raw文字列は通常の文字列の先頭に「r」又は「R」を付けたものです。raw文字列ではエスケープシーケンスが無効になりますので、例えば「¥n」と記述されていたとしても改行と言う意味ではなく「¥」と言う文字と「n」と言う文字が続いているだけの意味になります。

raw文字列は特に「¥」記号を多く含む文字列を作成する場合に便利です。例えばファイルのパスを示す次のような文字列を例に考えてみます。

"C:¥My Document¥node¥track¥test.txt"

「¥n」や「¥t」はエスケープシーケンスとして別の意味を持ってしまいますので、「¥」をエスケープシーケンス「¥¥」で置き換える必要があります。

"C:¥My Document¥¥node¥¥track¥¥test.txt"

raw文字列を使えば次のように記述できます。

r"C:¥My Document¥node¥track¥test.txt"

このように扱う文字列の中に文字としての「¥」記号が多く含まれている場合にはraw文字列を使用すると便利な場合があります。

なおraw文字列であっても、ダブルクオーテーションで囲った文字列の中にダブルクオーテーションを含める場合は「¥"」とする必要があります。シングルクオーテーションの場合も同様に「¥'」とします。

サンプルコード

では実際に試してみます。

#coding: UTF-8

print "C:¥My Document¥node¥track¥test.txt"
print r"C:¥My Document¥node¥track¥test.txt"

上記を「test4-1.py」として保存します。保存する時の文字コードはUTF-8です。そして次のように実行して下さい。

raw文字列

( Written by Tatsuo Ikura )