Pythonで「タブ」を作成するにはどうすればよいですか?


127

ファイルがあるとしましょう。「hello」TAB「alex」はどのように書くのですか?


6
タブは「\ t」を意味します
Pratik

回答:


154

これはコードです:

f = open(filename, 'w')
f.write("hello\talex")

\t文字列の内側は、水平集計のエスケープシーケンスです。


5
使用すると、print "a\tb"私を与えるa (8 spaces)bcmdWindows。タブ文字の代わりに8つのスペースを印刷するのはなぜですか。
Iulian Onofrei 2015年

他に何を期待していましたか?
Simone、

8
表示するにはa (tab character)b
Iulian Onofrei 2015年

@IulianOnofreiタブ文字は、空白文字とも呼ばれる非印刷文字です。Tabキーを押しても何も表示されません。デフォルトのスペース数だけテキストを移動します。多分あなたはあなたが現れたいものをキャラクターで描くことができます。それは->?
リックヘンダーソン

4
@RickHendersonそうではありません。タブ文字は単なるスペースの数ではありません。多分あなたのエディタはタブを押すとスペースを挿入するように設定されています。「」はタブです「」はスペースです。ここでは違いがわかりませんが、Word / Libreを開くと違いがわかります。
サティバ2018

27

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。これどうやってするの?
seralouk


14

これは通常\t、char \tを空白スペースのタブ文字に変換するコマンドラインインターフェイスにあります。

たとえば、hello\talex-> hello--->alexです。


9

どの回答にも記載されていなかったため、テキストを整列してスペースを空けたい場合に備えて、文字列フォーマット機能を使用できます。(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 

タブ文字を与えて3次元配列要素を0 12 24として3行として印刷するにはどうすればよいですか?
priya raj 2017

回答に追加
user1767754

0

「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のドキュメントを参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.