回答:
これはコードです:
f = open(filename, 'w')
f.write("hello\talex")
\t
文字列の内側は、水平集計のエスケープシーケンスです。
print "a\tb"
私を与えるa (8 spaces)b
にcmd
上Windows
。タブ文字の代わりに8つのスペースを印刷するのはなぜですか。
a (tab character)b
Python リファレンスマニュアルには、文字列で使用できるいくつかの文字列リテラルが含まれています。これらの特殊な文字シーケンスは、エスケープシーケンスの意図した意味に置き換えられます。
次の表は、より便利なエスケープシーケンスの一部と、それらの出力の説明です。
Escape Sequence Meaning
\t Tab
\\ Inserts a back slash (\)
\' Inserts a single quote (')
\" Inserts a double quote (")
\n Inserts a ASCII Linefeed (a new line)
基本的な例
タブスペースで区切られたいくつかのデータポイントを印刷したい場合は、この文字列を印刷できます。
DataString = "0\t12\t24"
print (DataString)
戻り値
0 12 24
リストの例
これは、リストのアイテムを印刷していて、TABでアイテムを分割したい別の例です。
DataPoints = [0,12,24]
print (str(DataPoints[0]) + "\t" + str(DataPoints[1]) + "\t" + str(DataPoints[2]))
戻り値
0 12 24
生の弦
生の文字列(接頭辞「r」を含む文字列)、文字列リテラルは無視されることに注意してください。これにより、これらの特殊な文字シーケンスを変更せずに文字列に含めることができます。
DataString = r"0\t12\t24"
print (DataString)
戻り値
0\t12\t24
これはおそらく望ましくない出力です
文字列の長さ
また、文字列リテラルは長さが1文字のみであることにも注意してください。
DataString = "0\t12\t24"
print (len(DataString))
戻り値
7
生の文字列の長さは9です。
\t
。これどうやってするの?
どの回答にも記載されていなかったため、テキストを整列してスペースを空けたい場合に備えて、文字列フォーマット機能を使用できます。(python 2.5より上)もちろん\t
、実際にはTABトークンですが、上記の方法ではスペースが生成されます。
例:
print "{0:30} {1}".format("hi", "yes")
> hi yes
別の例、左揃え:
print("{0:<10} {1:<10} {2:<10}".format(1.0, 2.2, 4.4))
>1.0 2.2 4.4
「hello」タブ「alex」を取得するためのいくつかのエキゾチックなPython 3の方法を次に示します(Python 3.6.10でテスト済み)。
"hello\N{TAB}alex"
"hello\N{tab}alex"
"hello\N{TaB}alex"
"hello\N{HT}alex"
"hello\N{CHARACTER TABULATION}alex"
"hello\N{HORIZONTAL TABULATION}alex"
"hello\x09alex"
"hello\u0009alex"
"hello\U00000009alex"
実際には、エスケープシーケンスを使用する代わりに、文字列リテラルに直接タブ記号を挿入することが可能です。コピーして試してみるための集計文字を含むコードを次に示します。
"hello alex"
上記の文字列のタブが文字列のコピー中に失われない場合、「print(repr(<上記の文字列>)」」は「hello \ talex」を出力します。
リファレンスについては、それぞれのPythonのドキュメントを参照してください。