web-dev-qa-db-ja.com

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

ファイルがあるとしましょう。 "hello" TAB "alex"の書き方

94
TIMEX

これはコードです:

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

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

121
Simone

文字列リテラルで\ tを使用できます。

"hello\talex"

22
Knio

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です。

17
CodeCupboard

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

たとえば、hello\talex-> hello--->alex

14
Darbio

回答で言及されていなかったように、テキストを揃えたり間隔を空けたりする場合に備えて、文字列形式機能を使用できます。 (上記の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 
6
user1767754